4 #include <condition_variable> 18 std::unique_lock<std::mutex> lock(m_mutex);
30 std::unique_lock<std::mutex> lock(m_mutex);
42 std::unique_lock<std::mutex> lock(m_mutex);
45 m_cv.wait(lock, [=]{
return m_readers == 0; } );
53 std::unique_lock<std::mutex> lock(m_mutex);
57 else if (m_readers < 0)
67 std::condition_variable m_cv;
96 operator bool ()
const {
return m_own; }
111 template <>
inline void ScopedLock<TRY_READ>::acquire()
113 m_own = m_rw.tryReadLock();