Lines Matching refs:WRITER_PENDING
58 if (!(m_state.load(std::memory_order_relaxed) & WRITER_PENDING)) { // no pending writers in lock()
59 m_state |= WRITER_PENDING; in lock()
88 state_type curr_state = (m_state &= READERS | WRITER_PENDING); // Returns current state in unlock()
90 if (curr_state & WRITER_PENDING) { in unlock()
103 state_type has_writer = WRITER | WRITER_PENDING; in lock_shared()
115 state_type has_writer = WRITER | WRITER_PENDING; in try_lock_shared()
135 if (curr_state & (WRITER_PENDING)) { in unlock_shared()
156 while ((s & READERS) == ONE_READER || !(s & WRITER_PENDING)) { in upgrade()
157 if (m_state.compare_exchange_strong(s, s | WRITER | WRITER_PENDING)) { in upgrade()
163 …TBB_ASSERT((m_state.load(std::memory_order_relaxed) & (WRITER_PENDING|WRITER)) == (WRITER_PENDING … in upgrade()
166 m_state -= (ONE_READER + WRITER_PENDING); in upgrade()
182 if (!(m_state & WRITER_PENDING)) { in downgrade()
191 static constexpr state_type WRITER_PENDING = 2; variable
192 static constexpr state_type READERS = ~(WRITER | WRITER_PENDING);