10 #ifndef EIGEN_CXX11_THREADPOOL_EVENTCOUNT_H_
11 #define EIGEN_CXX11_THREADPOOL_EVENTCOUNT_H_
73 std::memory_order_seq_cst))
94 std::memory_order_relaxed);
98 std::memory_order_acq_rel)) {
123 std::memory_order_acq_rel))
131 std::atomic_thread_fence(std::memory_order_seq_cst);
144 }
else if (signals < waiters) {
150 uint64_t next =
w->next.load(std::memory_order_relaxed);
155 std::memory_order_acq_rel)) {
156 if (!notifyAll && (signals < waiters))
160 if (!notifyAll)
w->next.store(
kStackMask, std::memory_order_relaxed);
210 static_assert(
kEpochBits >= 20,
"not enough bits to prevent ABA problem");
221 std::unique_lock<std::mutex> lock(
w->mu);
234 std::unique_lock<std::mutex> lock(
w->mu);
249 #endif // EIGEN_CXX11_THREADPOOL_EVENTCOUNT_H_