null_rw_mutex

[mutex.null_rw_mutex]

null_rw_mutex は、Mutex の要件の概念を構文的にモデル化するクラスですが、何も行いません。null_rw_mutex クラスは、[thread.sharedmutex.requirements] ISO C++ セクションの共有ミューテックス・タイプのすべての構文要件を満たしますが、何も行いません。ReaderWriterMutex を想定しますが、そのインスタンスで排他制御が実際に必要ないテンプレートを扱う場合に便利です。


// <oneapi/tbb/null_rw_mutex.h> ヘッダーで定義 

namespace oneapi { 
namespace tbb { 
    class null_rw_mutex { 
    public: 
        constexpr null_rw_mutex() noexcept; 
        ~null_rw_mutex(); 

        null_rw_mutex(const null_rw_mutex&) = delete; 
        null_rw_mutex& operator=(const null_rw_mutex&) = delete; 

        class scoped_lock; 
        
        void lock(); 
        bool try_lock(); 
        void unlock(); 

        void lock_shared(); 
        bool try_lock_shared(); 
        void unlock_shared(); 

        static constexpr bool is_rw_mutex = true; 
        static constexpr bool is_recursive_mutex = true; 
        static constexpr bool is_fair_mutex = true; 
    }; 
} // namespace tbb 
} // namespace oneapi

メンバークラス

class scoped_lock

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

メンバー関数

null_rw_mutex()

ロック解除されたミューテックスを作成します。

~null_rw_mutex()

ロック解除されたミューテックスを破棄します。

void lock()

ロックを取得します。

bool try_lock()

書き込みでロック (非ブロッキング) の取得を試みます。true を返します。

void unlock()

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

void lock_shared()

読み取りでロックを取得します。

bool try_lock_shared()

読み取りロック (非ブロッキング) の取得を試みます。true を返します。

void unlock_shared()

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