18
18
19
19
namespace as = boost::asio;
20
20
21
- template <typename T>
22
- bool compare_decrement (std::atomic<T>& val, T comp) {
23
- T old = val.load ();
24
- do {
25
- if (old == comp) return true ;
26
- } while (!val.compare_exchange_weak (old, old - 1 ));
27
- return false ;
28
- }
29
-
30
21
int main (int argc, char **argv) {
31
22
try {
32
23
boost::program_options::options_description desc;
@@ -577,7 +568,7 @@ int main(int argc, char **argv) {
577
568
async_wait_pub (ci);
578
569
}
579
570
580
- if (compare_decrement ( rest_times, std::uint64_t ( 1 )) ) finish_proc ();
571
+ if (-- rest_times == 0 ) finish_proc ();
581
572
return true ;
582
573
};
583
574
@@ -592,7 +583,7 @@ int main(int argc, char **argv) {
592
583
[&]
593
584
(bool /* sp*/ , MQTT_NS::connect_return_code connack_return_code) {
594
585
if (connack_return_code == MQTT_NS::connect_return_code::accepted) {
595
- if (compare_decrement ( rest_connect, std::size_t ( 1 )) ) sub_proc ();
586
+ if (-- rest_connect == 0 ) sub_proc ();
596
587
}
597
588
else {
598
589
std::cout << " connack error:" << connack_return_code << std::endl;
@@ -604,7 +595,7 @@ int main(int argc, char **argv) {
604
595
[&]
605
596
(bool /* sp*/ , MQTT_NS::v5::connect_reason_code reason_code, MQTT_NS::v5::properties /* props*/ ) {
606
597
if (reason_code == MQTT_NS::v5::connect_reason_code::success) {
607
- if (compare_decrement ( rest_connect, std::size_t ( 1 )) ) sub_proc ();
598
+ if (-- rest_connect == 0 ) sub_proc ();
608
599
}
609
600
else {
610
601
std::cout << " connack error:" << reason_code << std::endl;
@@ -620,7 +611,7 @@ int main(int argc, char **argv) {
620
611
if (results.front () == MQTT_NS::suback_return_code::success_maximum_qos_0 ||
621
612
results.front () == MQTT_NS::suback_return_code::success_maximum_qos_1 ||
622
613
results.front () == MQTT_NS::suback_return_code::success_maximum_qos_2) {
623
- if (compare_decrement ( rest_sub, std::size_t ( 1 )) ) pub_proc ();
614
+ if (-- rest_sub == 0 ) pub_proc ();
624
615
}
625
616
return true ;
626
617
}
@@ -634,7 +625,7 @@ int main(int argc, char **argv) {
634
625
if (reasons.front () == MQTT_NS::v5::suback_reason_code::granted_qos_0 ||
635
626
reasons.front () == MQTT_NS::v5::suback_reason_code::granted_qos_1 ||
636
627
reasons.front () == MQTT_NS::v5::suback_reason_code::granted_qos_2) {
637
- if (compare_decrement ( rest_sub, std::size_t ( 1 )) ) pub_proc ();
628
+ if (-- rest_sub == 0 ) pub_proc ();
638
629
}
639
630
return true ;
640
631
}
0 commit comments