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()
スレッドが保持する書込みロックを解放します。
読み取りでロックを取得します。
読み取りロック (非ブロッキング) の取得を試みます。true を返します。
スレッドが保持する読み取りロックを解放します。