22 #if defined(_MSC_VER) && defined(_Wp64) 24 #pragma warning (disable: 4244) 30 static inline T
CAS(
volatile T &
addr, T newv, T oldv) {
bool __TBB_EXPORTED_METHOD internal_try_acquire_reader()
Internal try_acquire read lock.
void __TBB_EXPORTED_METHOD internal_release_reader()
Internal release read lock.
bool __TBB_EXPORTED_METHOD internal_try_acquire_writer()
Internal try_acquire write lock.
bool __TBB_EXPORTED_METHOD internal_acquire_writer()
Internal acquire write lock.
static T CAS(volatile T &addr, T newv, T oldv)
void pause()
Pause for a while.
static const state_t ONE_READER
void __TBB_AtomicOR(volatile void *operand, uintptr_t addend)
void __TBB_AtomicAND(volatile void *operand, uintptr_t addend)
state_t state
State of lock.
static const state_t BUSY
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p sync_releasing
static const state_t WRITER_PENDING
#define _T(string_literal)
Standard Windows style macro to markup the string literals.
void __TBB_EXPORTED_METHOD internal_construct()
static const state_t WRITER
Class that implements exponential backoff.
static const state_t READERS
void const char const char int ITT_FORMAT __itt_group_sync s
#define ITT_SYNC_CREATE(obj, type, name)
#define __TBB_FetchAndAddWrelease(P, V)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void __TBB_EXPORTED_METHOD internal_acquire_reader()
Internal acquire read lock.
#define ITT_NOTIFY(name, obj)
void __TBB_EXPORTED_METHOD internal_release_writer()
Out of line code for releasing a write lock.
atomic< T > & as_atomic(T &t)
bool __TBB_EXPORTED_METHOD internal_upgrade()
Internal upgrade reader to become a writer.
void __TBB_EXPORTED_METHOD internal_downgrade()
Out of line code for downgrading a writer to a reader.