メインページ | モジュール | 名前空間一覧 | クラス階層 | 構成 | ファイル一覧 | 名前空間メンバ | 構成メンバ | ファイルメンバ | 関連ページ

クラス テンプレートtoppers::lock< LockObj, SenseKernel > の解説
[同期機構]

クリティカルセクションを生成するためのテンプレートクラス [詳細]

#include <toppers/sync.hpp>

すべてのメンバ一覧

Public メンバ関数

 lock ()
 デフォルトコンストラクタ

template<typename T>  lock (T arg)
 パラメータ指定のコンストラクタ

 ~lock () throw ()
 デストラクタ


解説

template<class LockObj, bool SenseKernel = false>
class toppers::lock< LockObj, SenseKernel >

  例外安全なクリティカルセクションを、指定したロック機構を用いて生成する。 誤使用を避けるため、このクラスではポーリングやタイムアウト指定はサポートしない。

  テンプレート引数LockObj には、semaphoremutex 、またはcpulock 等を指定することができる。LockObjvoid を指定した場合には、 実際にはクリティカルセクションが生成されない。

  テンプレート引数Sensekernel は、クリティカルセクションを生成するにあたり、 予めカーネルの動作状態をvsns_ini によって参照するかどうかを指定することができる。 SenseKerneltrue であればカーネル動作状態が参照される。

注意:
デフォルトではSenseKernelfalse になっているため、 カーネルが動作している必要がある。
参照:
recursive_lock