Lines Matching refs:m_state
34 rw_mutex() noexcept : m_state(0) { in rw_mutex()
40 __TBB_ASSERT(!m_state.load(std::memory_order_relaxed), "destruction of an acquired mutex"); in ~rw_mutex()
58 if (!(m_state.load(std::memory_order_relaxed) & WRITER_PENDING)) { // no pending writers in lock()
59 m_state |= WRITER_PENDING; in lock()
62 … auto wakeup_condition = [&] { return !(m_state.load(std::memory_order_relaxed) & BUSY); }; in lock()
75 state_type s = m_state.load(std::memory_order_relaxed); in try_lock()
77 if (m_state.compare_exchange_strong(s, WRITER)) { in try_lock()
88 state_type curr_state = (m_state &= READERS | WRITER_PENDING); // Returns current state in unlock()
104 … auto wakeup_condition = [&] { return !(m_state.load(std::memory_order_relaxed) & has_writer); }; in lock_shared()
107 …__TBB_ASSERT(m_state.load(std::memory_order_relaxed) & READERS, "invalid state of a read lock: no … in lock_shared()
116 if (!(m_state.load(std::memory_order_relaxed) & has_writer)) { in try_lock_shared()
117 if (m_state.fetch_add(ONE_READER) & has_writer) { in try_lock_shared()
118 m_state -= ONE_READER; in try_lock_shared()
130 …__TBB_ASSERT(m_state.load(std::memory_order_relaxed) & READERS, "invalid state of a read lock: no … in unlock_shared()
133 state_type curr_state = (m_state -= ONE_READER); // Returns current state in unlock_shared()
151 state_type s = m_state.load(std::memory_order_relaxed); in upgrade()
157 if (m_state.compare_exchange_strong(s, s | WRITER | WRITER_PENDING)) { in upgrade()
158 …auto wakeup_condition = [&] { return (m_state.load(std::memory_order_relaxed) & READERS) == ONE_RE… in upgrade()
159 while ((m_state.load(std::memory_order_relaxed) & READERS) != ONE_READER) { in upgrade()
163 …__TBB_ASSERT((m_state.load(std::memory_order_relaxed) & (WRITER_PENDING|WRITER)) == (WRITER_PENDIN… in upgrade()
166 m_state -= (ONE_READER + WRITER_PENDING); in upgrade()
178 __TBB_ASSERT(m_state.load(std::memory_order_relaxed) & WRITER, nullptr), in downgrade()
180 m_state += (ONE_READER - WRITER); in downgrade()
182 if (!(m_state & WRITER_PENDING)) { in downgrade()
186 …__TBB_ASSERT(m_state.load(std::memory_order_relaxed) & READERS, "invalid state after downgrade: no… in downgrade()
204 std::atomic<state_type> m_state; variable