flag0.store(false,std::memory_order_relaxed);
while (turn.load(std::memory_order_relaxed) != 0)
{
+ thrd_yield();
}
flag0.store(true,std::memory_order_relaxed);
std::atomic_thread_fence(std::memory_order_seq_cst);
- }
+ } else
+ thrd_yield();
}
std::atomic_thread_fence(std::memory_order_acquire);
flag1.store(false,std::memory_order_relaxed);
while (turn.load(std::memory_order_relaxed) != 1)
{
+ thrd_yield();
}
flag1.store(true,std::memory_order_relaxed);
std::atomic_thread_fence(std::memory_order_seq_cst);
- }
+ } else
+ thrd_yield();
}
std::atomic_thread_fence(std::memory_order_acquire);