rw_spinlock
extern bool try_acquire_write_spinlock(rw_spinlock* lock);
extern void acquire_write_spinlock(rw_spinlock* lock);
extern void release_write_spinlock(rw_spinlock* lock);
extern bool try_acquire_read_spinlock(rw_spinlock* lock);
extern void acquire_read_spinlock(rw_spinlock* lock);
extern void release_read_spinlock(rw_spinlock* lock);
#define B_INITIALIZE_RW_SPINLOCK(rw_spinlock) do { \
(rw_spinlock)->lock = 0; \
extern rw_spinlock gWaitObjectListenerLock;
try_acquire_write_spinlock_inline(rw_spinlock* lock)
acquire_write_spinlock_inline(rw_spinlock* lock)
release_write_spinlock_inline(rw_spinlock* lock)
try_acquire_read_spinlock_inline(rw_spinlock* lock)
acquire_read_spinlock_inline(rw_spinlock* lock)
release_read_spinlock_inline(rw_spinlock* lock)
rw_spinlock team_lock;
inline bool Lock(rw_spinlock* lockable)
inline void Unlock(rw_spinlock* lockable)
inline bool Lock(rw_spinlock* lockable)
inline void Unlock(rw_spinlock* lockable)
inline bool Lock(rw_spinlock* lockable)
inline void Unlock(rw_spinlock* lockable)
inline bool Lock(rw_spinlock* lockable)
inline void Unlock(rw_spinlock* lockable)
static rw_spinlock sConditionVariableHashLock;
rw_spinlock gWaitObjectListenerLock = B_RW_SPINLOCK_INITIALIZER;
rw_spinlock gCoreHeapsLock = B_RW_SPINLOCK_INITIALIZER;
rw_spinlock gIdlePackageLock = B_RW_SPINLOCK_INITIALIZER;
rw_spinlock fSchedulerModeLock;
rw_spinlock fLoadLock;
rw_spinlock fCoreLock;
extern rw_spinlock gCoreHeapsLock;
extern rw_spinlock gIdlePackageLock;
static rw_spinlock sBroadcastMessageSpinlock = B_RW_SPINLOCK_INITIALIZER;
try_acquire_write_spinlock(rw_spinlock* lock)
acquire_write_spinlock(rw_spinlock* lock)
acquire_write_spinlock_nocheck(rw_spinlock* lock)
acquire_write_spinlock_cpu(int32 currentCPU, rw_spinlock* lock)
release_write_spinlock(rw_spinlock* lock)
try_acquire_read_spinlock(rw_spinlock* lock)
acquire_read_spinlock(rw_spinlock* lock)
acquire_read_spinlock_nocheck(rw_spinlock* lock)
release_read_spinlock(rw_spinlock* lock)
static rw_spinlock sFreeMessageSpinlock = B_RW_SPINLOCK_INITIALIZER;
static rw_spinlock sTeamHashLock = B_RW_SPINLOCK_INITIALIZER;
static rw_spinlock sThreadHashLock = B_RW_SPINLOCK_INITIALIZER;
static rw_spinlock sAvailableMemoryLock = B_RW_SPINLOCK_INITIALIZER;