Skip to content.

Sections
Personal tools
You are here: Home » ダウンロード » ThreadJack用 » doc » TJTransaction

Document Actions

class TJTransaction

Read/Write Lock(共有・排他ロック)の開始と終了を扱うトランザクション

Public メソッド

[more]TJTransaction(TJRWLock* rwlock, TJRWLock::LockMode mode)
参照または更新モードでロックを獲得する
[more]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++.