Lines Matching refs:next

292 …d1::queuing_rw_mutex::scoped_lock* next = tricky_pointer::load(s.my_next, std::memory_order_acquir…  in release()  local
293 if( !next ) { in release()
303 next = tricky_pointer::load(s.my_next, std::memory_order_acquire); in release()
305next->my_going.store(2U, std::memory_order_relaxed); // protect next queue node from being destroy… in release()
314 if( next->my_state.load(std::memory_order_acquire)==STATE_UPGRADE_WAITING ) { in release()
319 …d1::queuing_rw_mutex::scoped_lock* tmp = tricky_pointer::exchange(next->my_prev, nullptr, std::mem… in release()
321 next->my_state.store(STATE_UPGRADE_LOSER, std::memory_order_release); in release()
323 next->my_going.store(1U, std::memory_order_release); in release()
327 …__TBB_ASSERT( next->my_state.load(std::memory_order_relaxed) & (STATE_COMBINED_WAITINGREADER | STA… in release()
328 …__TBB_ASSERT( !( next->my_prev.load(std::memory_order_relaxed) & FLAG ), "use of corrupted pointer… in release()
330 tricky_pointer::store(next->my_prev, nullptr, std::memory_order_release); in release()
332 next->my_going.store(1U, std::memory_order_release); in release()
386 …d1::queuing_rw_mutex::scoped_lock* next = tricky_pointer::load(s.my_next, std::memory_order_acquir… in release() local
387 if( !next ) { in release()
394 next = tricky_pointer::load(s.my_next, std::memory_order_acquire); in release()
399 next->my_going.store(2U, std::memory_order_relaxed); in release()
401 tmp = tricky_pointer::exchange(next->my_prev, nullptr, std::memory_order_release); in release()
402 next->my_going.store(1U, std::memory_order_release); in release()
418 …d1::queuing_rw_mutex::scoped_lock* next = tricky_pointer::load(s.my_next, std::memory_order_acquir… in downgrade_to_reader() local
419 if( !next ) { in downgrade_to_reader()
434 next = tricky_pointer::load(s.my_next, std::memory_order_acquire); in downgrade_to_reader()
437 __TBB_ASSERT( next, "still no successor at this point!" ); in downgrade_to_reader()
438 if( next->my_state.load(std::memory_order_relaxed) & STATE_COMBINED_WAITINGREADER ) in downgrade_to_reader()
439 next->my_going.store(1U, std::memory_order_release); in downgrade_to_reader()
448 else if( next->my_state.load(std::memory_order_acquire)==STATE_UPGRADE_WAITING ) in downgrade_to_reader()
451 next->my_state.store(STATE_UPGRADE_LOSER, std::memory_order_release); in downgrade_to_reader()
476 queuing_rw_mutex::scoped_lock * next; in upgrade_to_writer() local
477 next = tricky_pointer::fetch_add(s.my_next, FLAG, std::memory_order_acquire); in upgrade_to_writer()
481 unsigned short n_state = next->my_state.load(std::memory_order_acquire); in upgrade_to_writer()
484 next->my_going.store(1U, std::memory_order_release); in upgrade_to_writer()
486 tmp = tricky_pointer::exchange(next->my_prev, &s, std::memory_order_release); in upgrade_to_writer()
490 tmp = tricky_pointer(next)|FLAG; in upgrade_to_writer()
494 tricky_pointer::store(s.my_next, next, std::memory_order_relaxed); in upgrade_to_writer()
498 …ricky_pointer::load(s.my_next, std::memory_order_relaxed) != (tricky_pointer(next)|FLAG), nullptr); in upgrade_to_writer()
502 …__TBB_ASSERT( (tricky_pointer(next)|FLAG) == tricky_pointer::load(s.my_next, std::memory_order_rel… in upgrade_to_writer()
503 tricky_pointer::store(s.my_next, next, std::memory_order_relaxed); in upgrade_to_writer()