spin_mutex

[mutex.spin_mutex]

spin_mutexは、スピンロックによりミューテックスの要件をモデル化するクラスです。spin_mutex クラスは、[thread.mutex.requirements] ISO C++ セクションのミューテックス・タイプのすべての要件を満たします。spin_mutexクラスは、フェアではなく再帰的ではありません。

// <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

メンバークラス

class scoped_lock

scoped_lock クラスに相当します。Mutex の要件を参照してください。

メンバー関数

spin_mutex()

アンロックされた spin_mutex を作成します。

~spin_mutex()

アンロックされた spin_mutex を破棄します。

void lock()

ロックを取得します。ロックが取得できたらスピンします。

bool try_lock()

ロック (非ブロッキング) の取得を試みます。ロックがは取得された場合は true、それ以外は false を返します。

void unlock()

スレッドが保持するロックを解放します。