Lines Matching refs:s
68 state_type s = m_state.load(std::memory_order_relaxed); in lock() local
69 if (!(s & BUSY)) { // no readers, no writers in lock()
70 if (m_state.compare_exchange_strong(s, WRITER)) in lock()
73 } else if (!(s & WRITER_PENDING)) { // no pending writers in lock()
84 state_type s = m_state.load(std::memory_order_relaxed); in try_lock() local
85 if (!(s & BUSY)) { // no readers, no writers; mask is 1..1101 in try_lock()
86 if (m_state.compare_exchange_strong(s, WRITER)) { in try_lock()
104 state_type s = m_state.load(std::memory_order_relaxed); in lock_shared() local
105 if (!(s & (WRITER | WRITER_PENDING))) { // no writer or write requests in lock_shared()
121 state_type s = m_state.load(std::memory_order_relaxed); in try_lock_shared() local
122 if (!(s & (WRITER | WRITER_PENDING))) { // no writers in try_lock_shared()
148 state_type s = m_state.load(std::memory_order_relaxed); in upgrade() local
149 __TBB_ASSERT(s & READERS, "invalid state before upgrade: no readers "); in upgrade()
153 while ((s & READERS) == ONE_READER || !(s & WRITER_PENDING)) { in upgrade()
154 if (m_state.compare_exchange_strong(s, s | WRITER | WRITER_PENDING)) { in upgrade()