manpagez: man pages & more
man spinlock_deprecated(3)
Home | html | info | man

spinlock_deprecated(3)   BSD Library Functions Manual   spinlock_deprecated(3)


NAME

     OSSpinLockTry, OSSpinLockLock, OSSpinLockUnlock -- deprecated atomic spin
     lock synchronization primitives


SYNOPSIS

     #include <libkern/OSAtomic.h>

     bool
     OSSpinLockTry(OSSpinLock *lock);

     void
     OSSpinLockLock(OSSpinLock *lock);

     void
     OSSpinLockUnlock(OSSpinLock *lock);


DESCRIPTION

     These are deprecated interfaces for userspace spinlocks, provided for
     compatibility with legacy code. These interfaces should no longer be
     used, particularily in situations where threads of differing priorities
     may contend on the same spinlock.

     The interfaces in <os/lock.h> should be used instead in cases where a
     very low-level lock primitive is required. In general however, using
     higher level synchronization primitives such as those provided by the
     pthread or dispatch subsystems are preferred.

     The OSSpinLock operations use memory barriers to synchronize access to
     shared memory protected by the lock.  Preemption is possible while the
     lock is held.

     OSSpinLock is an integer type.  The convention is that unlocked is zero,
     and locked is nonzero.  Locks must be naturally aligned and cannot be in
     cache-inhibited memory.

     OSSpinLockLock() will spin if the lock is already held, but employs vari-
     ous strategies to back off. Because it can spin, it will generally be
     less cpu and power efficient than other synchronization primitives.

     OSSpinLockTry() immediately returns false if the lock was held, true if
     it took the lock.  It does not spin.

     OSSpinLockUnlock() unconditionally unlocks the lock by zeroing it.


RETURN VALUES

     OSSpinLockTry() returns true if it took the lock, false if the lock was
     already held.


SEE ALSO

     atomic(3), atomic_deprecated(3)

Darwin                           May 26, 2004                           Darwin

Mac OS X 10.12.3 - Generated Wed Feb 8 16:43:03 CST 2017
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.