MF 

WAIT(待機)文

WAIT(待機)文は、現在のスレッドの実行を、目的のスレッドの実行が終了するまで保留する。また、場合によっては、目的のスレッドの実行により返された値を取得するまで保留する。

WAIT文は、イベントが真となるまで実行を保留する。

一般形式

形式 1(スレッド)

形式 2(イベント)

構文規則

形式 1 (スレッド)
  1. スレッドポインタ-1 はUSAGE THREAD-POINTERとして定義しなければならない。

  2. 一意名-1 は、USAGE POINTER として定義されるか、サイズが4バイトでなければならない。一意名-1 は関数一意名であってはならない。

  3. 一意名-2は、4桁以上の長さの整数データ項目として定義しなければならない。

形式 2 (イベント)
  1. イベントポインタ-1 はUSAGE EVENT-POINTERとして定義しなければならない。

一般規則

形式 1 (スレッド)
  1. スレッドポインタ-1は、IDENTIFIED BY指定を含むSTART文または、CBL_THREAD_登録集から返されたスレッドハンドルを含んでいなければならない。

  2. WAIT文が正常に動作すると、スレッドポインタ-1に含まれるスレッドハンドルが参照するスレッドが終了するまで、現在のスレッドが実行されない。

  3. RETURNING指定を使用すると、正常に動作するWAIT文により、一意名-1の値が返される。

  4. WAIT文が正常に動作した後は、スレッドポインタ-1に含まれるスレッドハンドルは無効となる。

  5. STATUS指定を使用すると、WAIT文の実行により、CBL_THREAD_登録集ルーチンに対して指定された戻り符号のどれかが、一意名-4中に配置される。

  6. WAIT文が正常に動作しなかった場合、一意名-2が指定されていれば、そこにCBL_THREAD_登録集ルーチンに対して指定された戻り符号のどれかが配置される。さらに、以下のいずれかが行われる。

    1. ON EXCEPTION指定を使用した場合、制御が無条件文-1に渡される。その後、無条件文-1で指定された各文の規則に従って実行が継続される。手続きの分岐、または制御の移動を明示的に指示する条件文が実行された場合は、制御が文の規則に従って渡される。そうでない場合は、無条件文-1 の実行が完了すると同時に、WAIT文の最後に制御が渡され、NOT ON EXCEPTION指定が使用されていても無視される。

    2. 上記以外の場合で、NOT ON EXCEPTION指定またはSTATUS指定を使用した場合は、WAIT文の最後に制御が渡され、NOT ON EXCEPTION指定が使用されていても無視される。

    3. 上記以外の場合は、実行時システムエラーとともに実行単位が終了する。

  7. WAIT文が正常に実行された場合は、以下が記載された順序通りに行われる。

    1. STATUS指定を使用した場合は、ZEROが一意名-2に転記される。

    2. NOT ON EXCEPTION指定を使用した場合は、制御が無条件文-2に渡される。 その後、無条件文-2 で指定された各文の規則に従って、実行が続行される。手続きの分岐、または制御の移動を明示的に指示する条件文が実行された場合は、制御が文の規則に従って渡される。そうでない場合は、無条件文-2 の実行が完了すると同時に、WAIT文の最後に制御が渡され、ON EXCEPTION指定が使用されていても無視される。

形式 2 (イベント)
  1. WAIT文が正常に動作すると、イベントポインタ-1が参照するイベントが真となるまで、実行が保留される。

注:文が実行されたとき、イベントポインタ-1 が参照するイベントが真であった場合は、実行がただちに再開される。


  1. WAIT文が正常に動作しなかった場合、実行時システムエラーとともに実行単位が終了する。