From 2d86727be1f8b482b9e5330bd7447149a39f023f Mon Sep 17 00:00:00 2001 From: mutouyun Date: Mon, 26 Nov 2018 18:35:49 +0800 Subject: [PATCH] a little adjustment --- src/circ_elem_array.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/circ_elem_array.h b/src/circ_elem_array.h index e156488..2756955 100644 --- a/src/circ_elem_array.h +++ b/src/circ_elem_array.h @@ -106,8 +106,9 @@ public: // check read finished by all consumers do { uc_t expected = 0; + std::atomic_thread_fence(std::memory_order_acquire); if (el->head_.rf_.compare_exchange_weak( - expected, static_cast(conn_count()), std::memory_order_acq_rel)) { + expected, cc_.load(std::memory_order_relaxed), std::memory_order_release)) { break; } std::this_thread::yield();