|
JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins
« « « Anklang Documentation |
A simple spin-lock class that can be used as a simple, low-overhead mutex for uncontended situations. More...
#include "juce_SpinLock.h"
Public Types | |
| using | ScopedLockType = GenericScopedLock< SpinLock > |
| Provides the type of scoped lock to use for locking a SpinLock. | |
| using | ScopedUnlockType = GenericScopedUnlock< SpinLock > |
| Provides the type of scoped unlocker to use with a SpinLock. | |
| using | ScopedTryLockType = GenericScopedTryLock< SpinLock > |
| Provides the type of scoped try-lock to use for locking a SpinLock. | |
Public Member Functions | |
| void | enter () const noexcept |
| Acquires the lock. | |
| bool | tryEnter () const noexcept |
| Attempts to acquire the lock, returning true if this was successful. | |
| void | exit () const noexcept |
| Releases the lock. | |
A simple spin-lock class that can be used as a simple, low-overhead mutex for uncontended situations.
Note that unlike a CriticalSection, this type of lock is not re-entrant, and may be less efficient when used in a highly contended situation, but it's very small and requires almost no initialisation. It's most appropriate for simple situations where you're only going to hold the lock for a very brief time.
@tags{Core}
Definition at line 41 of file juce_SpinLock.h.
Provides the type of scoped lock to use for locking a SpinLock.
Definition at line 73 of file juce_SpinLock.h.
Provides the type of scoped try-lock to use for locking a SpinLock.
Definition at line 79 of file juce_SpinLock.h.
Provides the type of scoped unlocker to use with a SpinLock.
Definition at line 76 of file juce_SpinLock.h.
|
noexcept |
Acquires the lock.
This will block until the lock has been successfully acquired by this thread. Note that a SpinLock is NOT re-entrant, and is not smart enough to know whether the caller thread already has the lock - so if a thread tries to acquire a lock that it already holds, this method will never return!
It's strongly recommended that you never call this method directly - instead use the ScopedLockType class to manage the locking using an RAII pattern instead.
Definition at line 334 of file juce_Thread.cpp.
|
noexcept |
Releases the lock.
Definition at line 65 of file juce_SpinLock.h.
|
noexcept |
Attempts to acquire the lock, returning true if this was successful.
Definition at line 59 of file juce_SpinLock.h.