Fix a data race found by TSAN in folly::fibers::Baton
[folly.git] / folly / fibers / Baton.cpp
index 7161f9fb97f8a49e4e763e842ce6bf97080f1a57..5f5a104c079d0068e94d62cbe7dffc822c15cb6c 100644 (file)
@@ -58,7 +58,7 @@ void Baton::waitThread() {
           waitingFiber_.compare_exchange_strong(fiber, THREAD_WAITING))) {
     do {
       folly::detail::MemoryIdler::futexWait(futex_.futex, THREAD_WAITING);
-      fiber = waitingFiber_.load(std::memory_order_relaxed);
+      fiber = waitingFiber_.load(std::memory_order_acquire);
     } while (fiber == THREAD_WAITING);
   }