class TJTransaction
Read/Write Lock(共有・排他ロック)の開始と終了を扱うトランザクション
Public メソッド
- TJTransaction(TJRWLock* rwlock, TJRWLock::LockMode mode)
- 参照または更新モードでロックを獲得する
- virtual ~TJTransaction()
- デストラクタ(ロックを解放する)
文書
Read/Write Lock(共有・排他ロック)の開始と終了を扱うトランザクション.共有資源を安全に更新・参照するためのロック機構 TJRWLock の開始と 終了を,コンストラクタとデストラクタで扱う. ただし,ロック取得は無限に待つモードのみサポートする.
コンストラクタで指定モードのロックが獲得されデストラクタで解放される. スコープを脱出する時に自動的にロックを解放したい場合に便利である.
特に,例外抜け,途中 return 等で unlock の呼び出しを保証したい場合に は,このクラスを使用すべきである.
以下に使用例を示す. 関数の例であるが,任意のスコープ終了で取得した ロックと解放を保証できる(for, while, if, {} ブロックも可).
* * void f(TJRWLock* lock) { * // 関数先頭でロック確保 * TJTransaction tr(lock, TRWRLock::SHARED); * * * if (....) * return; // ここでもロック解放を保証. * * int* BigArray = new int[1000]; * // 途中,例外によって関数を抜けてもロック解放. * * * } // 関数終了でロック解放 * *
- TJTransaction(TJRWLock* rwlock, TJRWLock::LockMode mode)
-
参照または更新モードでロックを獲得する.
TJRWLockの機能のうちタイムアウト指定や trylock (NONBLOCK) に 相当する機能は除外してあることに注意.
引数で与えられた RWLock を lock する.
- パラメータ:
- rwlock - TJRWLockオブジェクトのポインタ
mode - TJRWLock::SHARED: 参照モード TJRWLock::EXCLUSIVE: 更新モード
- virtual ~TJTransaction()
- デストラクタ(ロックを解放する).
コンストラクタで取得した RWLock を unlock する.
- 子クラスは存在しません
- 作者 :
- Susumu TOKUI @date 1998,6/1
索引(アルファベット順) HTMLクラス継承 または Java
This page was generated with the help of DOC++.