nlib
nn::nlib::threading::TimedCriticalSection クラスfinal

リエントラントでタイムアウトが可能なクリティカルセクションです。 [詳解]

#include "nn/nlib/threading/CriticalSection.h"

公開型

typedef nlib_mutexnative_handle_type
 ネイティブのミューテックスへのポインタ型のtypedefです。
 

公開メンバ関数

constexpr TimedCriticalSection () noexcept=default
 デフォルトコンストラクタです。
 
bool try_lock_for (const TimeSpan &span) noexcept NLIB_TRY_ACQUIRE(true)
 ロックを取得し、クリティカルセクションに入ることを試みます。タイムアウトします。 [詳解]
 
bool try_lock_until (const DateTime &abstime) noexcept NLIB_TRY_ACQUIRE(true)
 ロックを取得し、クリティカルセクションに入ることを試みます。タイムアウトします。 [詳解]
 
void lock () noexcept NLIB_ACQUIRE()
 ロックを取得し、クリティカルセクションに入ります。取得できるまでブロックします。
 
void unlock () noexcept NLIB_RELEASE()
 ロックを開放し、クリティカルセクションから出ます。
 
bool try_lock () noexcept NLIB_TRY_ACQUIRE(true)
 ロックを取得し、クリティカルセクションに入ることを試みます。 [詳解]
 
native_handle_type native_handle () noexcept NLIB_RETURN_CAPABILITY(mutex_)
 ネイティブ型のミューテックスのポインタを取得します。 [詳解]
 

詳解

リエントラントでタイムアウトが可能なクリティカルセクションです。

説明
C++11のstd::recursive_timed_mutexに対応します。

CriticalSection.h118 行目に定義があります。

関数詳解

◆ native_handle()

nn::nlib::threading::TimedCriticalSection::native_handle ( )
inlinenoexcept

ネイティブ型のミューテックスのポインタを取得します。

戻り値
ミューテックスへのポインタ

CriticalSection.h150 行目に定義があります。

◆ try_lock()

nn::nlib::threading::TimedCriticalSection::try_lock ( )
inlinenoexcept

ロックを取得し、クリティカルセクションに入ることを試みます。

戻り値
ロックが取得できたらtrue

CriticalSection.h143 行目に定義があります。

◆ try_lock_for()

nn::nlib::threading::TimedCriticalSection::try_lock_for ( const TimeSpan span)
noexcept

ロックを取得し、クリティカルセクションに入ることを試みます。タイムアウトします。

引数
[in]spanタイムアウトまでの時間
戻り値
ロックが取得できたらtrue

◆ try_lock_until()

nn::nlib::threading::TimedCriticalSection::try_lock_until ( const DateTime abstime)
noexcept

ロックを取得し、クリティカルセクションに入ることを試みます。タイムアウトします。

引数
[in]abstimeタイムアウトする時刻
戻り値
ロックが取得できたらtrue

このクラス詳解は次のファイルから抽出されました: