diff --git a/drama/src/rev-mc.c b/drama/src/rev-mc.c index cdc1873..8ff89fb 100644 --- a/drama/src/rev-mc.c +++ b/drama/src/rev-mc.c @@ -372,7 +372,8 @@ find_row_mask(std::vector &sets, for (int i = 0; i < step && cur_mask < last_mask && !found.load(std::memory_order_relaxed); ++i) { if (resolve(cur_mask)) { - if (!found.exchange(true)) { + bool expected = false; + if (found.compare_exchange_strong(expected, true)) { std::lock_guard _(lock); row_mask = cur_mask; break;