The OESpinlock class provides a portable mutual exclusion device, that is useful for protecting shared data structures from concurrent modification. It provides the exact same semantics as a OEMutex object, however, it has very different performance semantics. Spin locks will optimistically continually try to acquire the lock in a tight loop. OEMutex will typically yield the processor back to the operating system. Spin locks are useful to protect very cheap operations.
Acquires (locks) the OESpinlock. If the
OESpinlock is unlocked, it is locked by
this thread and becomes owned by the calling thread. If the
OESpinlock is already locked, by this or
in a tight loop until the OESpinlock is
released. No attempt is made at fairness between threads.
Releases (unlocks) the OESpinlock.