void unlock () { bool expected = true; POMAGMA_ASSERT(m_flag.compare_exchange_strong(expected, false), "unlock contention"); store_barrier(); }
void release (PipelineState & state) { store_barrier(); if (state.decrement_count() == 1) { state.store(state_); std::unique_lock<std::mutex> lock(mutex_); cond_variable_.notify_all(); } }
void unlock () { store_barrier(); }
void unlock_shared () { --m_count; store_barrier(); }
void unlock () { ++m_count; store_barrier(); }
~SharedLock () { store_barrier(); }
~UniqueLock () { store_barrier(); }
~Lock () { store_barrier(); }