spin_mutex#
[mutex.spin_mutex]
A spin_mutex is a class that models the Mutex requirement using a spin lock.
The spin_mutex class satisfies all requirements of mutex type from the [thread.mutex.requirements] ISO C++ section.
The spin_mutex class is not fair or recursive.
// Defined in header <oneapi/tbb/spin_mutex.h>
namespace oneapi {
namespace tbb {
    class spin_mutex {
    public:
        spin_mutex() noexcept;
        ~spin_mutex();
        spin_mutex(const spin_mutex&) = delete;
        spin_mutex& operator=(const spin_mutex&) = delete;
        class scoped_lock;
        void lock();
        bool try_lock();
        void unlock();
        static constexpr bool is_rw_mutex = false;
        static constexpr bool is_recursive_mutex = false;
        static constexpr bool is_fair_mutex = false;
    };
} // namespace tbb
} // namespace oneapi
Member classes#
- 
class scoped_lock#
 Corresponding
scoped_lockclass. See the Mutex requirement.
Member functions#
- 
spin_mutex()#
 Constructs
spin_mutexwith unlocked state.
- 
~spin_mutex()#
 Destroys an unlocked
spin_mutex.
- 
void lock()#
 Acquires a lock. Spins if the lock is taken.
- 
bool try_lock()#
 Attempts to acquire a lock (non-blocking). Returns true if lock is acquired; false, otherwise.
- 
void unlock()#
 Releases a lock held by a current thread.