From 136b2022a6fce6230cd5cdf377a3034332f0aafd Mon Sep 17 00:00:00 2001 From: khizmax Date: Sat, 8 Jul 2017 10:11:30 +0300 Subject: [PATCH] Fixed memory ordering --- cds/sync/pool_monitor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cds/sync/pool_monitor.h b/cds/sync/pool_monitor.h index 095e7210..43742382 100644 --- a/cds/sync/pool_monitor.h +++ b/cds/sync/pool_monitor.h @@ -196,7 +196,7 @@ namespace cds { namespace sync { // try lock spin and increment reference counter refspin_type cur = p.m_SyncMonitorInjection.m_RefSpin.load( atomics::memory_order_relaxed ) & ~c_nSpinBit; if ( !p.m_SyncMonitorInjection.m_RefSpin.compare_exchange_weak( cur, cur + c_nRefIncrement + c_nSpinBit, - atomics::memory_order_acquire, atomics::memory_order_acquire )) + atomics::memory_order_acq_rel, atomics::memory_order_acquire )) { back_off bkoff; do { @@ -204,7 +204,7 @@ namespace cds { namespace sync { bkoff(); cur &= ~c_nSpinBit; } while ( !p.m_SyncMonitorInjection.m_RefSpin.compare_exchange_weak( cur, cur + c_nRefIncrement + c_nSpinBit, - atomics::memory_order_acquire, atomics::memory_order_acquire )); + atomics::memory_order_acq_rel, atomics::memory_order_acquire )); } // spin locked -- 2.34.1