Example #1
0
 void lock ()
 {
     load_barrier();
     bool expected = false;
     POMAGMA_ASSERT(m_flag.compare_exchange_strong(expected, true),
             "lock contention");
 }
Example #2
0
 void acquire (const PipelineState & state)
 {
     if (state.load_stage() != stage_) {
         std::unique_lock<std::mutex> lock(mutex_);
         cond_variable_.wait(lock, [&](){
             return state.load_stage() == stage_;
         });
     }
     load_barrier();
 }
Example #3
0
 void lock () { load_barrier(); }
Example #4
0
 void lock_shared ()
 {
     load_barrier();
     POMAGMA_ASSERT(++m_count > 0, "lock_shared contention");
 }
Example #5
0
 void lock ()
 {
     load_barrier();
     POMAGMA_ASSERT(--m_count < 0, "lock contention");
 }
Example #6
0
 SharedLock (AssertSharedMutex &) { load_barrier(); }
Example #7
0
 Lock (AssertMutex &) { load_barrier(); }