[前へ] [目次へ] [次へ]
このクラスはシグナルの同期オブジェクトを扱うクラスです。
このクラスのインスタンスと Signal のインスタンスを
組み合わせることで、同期制御を行います。
シグナルは任意のタイミングで更新することができ、
スレッド間のタイミング制御に向いています。
●継承
このクラスは継承をしていません。
●インターフェイスとインターフェイスメソッド
このクラスはインターフェイスの実装宣言をしていません。
●クラスメソッド
このクラスはクラスメソッドを持っていません。
●クラスメンバメソッド
●クラス共有変数
このクラスはクラス共有変数を持っていません。
●インスタンス変数
このクラスはインスタンス変数を持っていません。
●C++レベル追加情報
クラスID: FGES_CLASSID_WAITSIGNALINFO
クラス名: FGESWaitSignalInfo
WaitSignalInfo::Set
public Bool Set( INativeSignal sigobj)
sigobj のシグナルオブジェクトを待機対象として設定します。
既に待機対象として設定されていた場合、状態だけが更新されます。
待機対象として設定したシグナルオブジェクトが
このメソッドの呼び出し以降に更新されたことをトリガーとする同期ができます。
戻り値:成功すると真を返します
INativeSignal sigobj :設定するシグナルオブジェクト
先頭へ
WaitSignalInfo::AwakeSet
public Bool AwakeSet(editable INativeSignal sigobj)
sigobj のシグナルオブジェクトを更新してから、待機対象として設定します。
シグナルの更新から待機対象の設定までは不可分に行われます。
既に待機対象として設定されていた場合、状態だけが更新されます。
待機対象として設定したシグナルオブジェクトが
このメソッドの呼び出し以降に更新されたことをトリガーとする同期ができます。
このメソッドは一つのシグナルを共有する場合に便利です。
戻り値:成功すると真を返します
editable INativeSignal sigobj :更新、設定するシグナルオブジェクト
先頭へ
WaitSignalInfo::Remove
public Bool Remove( INativeSignal sigobj)
sigobj のシグナルオブジェクトを待機対象から除外します。
待機対象として設定されていなかった場合何も起こりません。
戻り値:待機対象から除外されると真を返します
INativeSignal sigobj :設定するシグナルオブジェクト
先頭へ
WaitSignalInfo::Reset
public Bool Reset()
現在設定されている待機対象のシグナルオブジェクトを全て解除します。
戻り値:成功すると真を返します
先頭へ
WaitSignalInfo::WaitSignal
public INativeSignal?@ WaitSignal( INativeInteger timeout)
現在設定されている待機対象のシグナルオブジェクトを待機します。
このメソッドは待機中にスレッドが timeout 回アクティブになるか、
待機対象のシグナルオブジェクトが設定後に更新された場合に戻ります。
戻る条件を満たさない場合、メソッドから戻らずにスレッドが切り替わります。
このメソッドを呼び出した時点で既にシグナルが更新されていた場合、
スレッドの切り替え処理を行うことなく直ちに処理が戻ります。
このメソッドは更新されたシグナルオブジェクトを検出すると、
待機中のシグナルオブジェクトの該当シグナルから1回分待機状態を更新します。
つまり、設定してから同じシグナルオブジェクトが複数回更新されていた場合、
更新された回数分、このメソッドは更新を検出します。
更新されたシグナルオブジェクトが複数ある場合、
そのうちの一つだけに更新処理を行い、そのシグナルオブジェクトを返します。
戻り値:更新されたシグナルオブジェクトを返します。
タイムアウトまで更新されたシグナルオブジェクトがなかった場合、空参照を返します。
INativeInteger timeout :タイムアウトまでのアクティブ回数
先頭へ
[前へ] [目次へ] [次へ]
最終更新 2018/01/07