WAIT 文は、対象となるスレッドの実行が終了するまで現在のスレッドの実行を中断し、必要に応じて対象となるスレッドの実行から返される値を取得する。
WAIT 文は、イベントが TRUE になるまで実行を中断する。
書き方 1 の一般形式 (スレッド)

書き方 2 の一般形式 (イベント)

書き方 1 の構文規則 (スレッド)
- スレッドポインタ-1 は、USAGE THREAD-POINTER として定義しなければならない。
- 一意名-1 は、USAGE POINTER として定義するか、サイズを 4 バイトにしなければならない。これは関数識別子であってはならない。
- 一意名-2 は、長さが 4 桁以上の整数データ項目として定義しなければならない。
書き方 2 の構文形式 (イベント)
- イベントポインタ-1 は、USAGE EVENT-POINTER として定義しなければならない。
書き方 1 の一般形式 (スレッド)
- スレッドポインタ-1 は、IDENTIFIED BY 指定がある START 文から、または CBL_THREAD_ ライブラリ ルーチンから返されるスレッド ハンドルを含まなければならない。
- 正常な WAIT 文は、スレッドポインタ-1 に含まれるスレッド ハンドルによって参照されるスレッドの終了まで現在のスレッドの実行を中断する。
- RETURNING 指定が記述されている場合、正常な WAIT 文は一意名-1 の値を返す。
- WAIT 文が正常に実行された後、スレッドポインタ-1 に含まれるスレッド ハンドルは無効になる。
- STATUS 指定が記述されている場合、WAIT 文の実行により、CBL_THREAD_ ライブラリ ルーチンに対して指定された戻りコードのいずれかが一意名-4 に格納される。
- WAIT 文が失敗した場合は、CBL_THREAD_ ライブラリ ルーチンに対して指定された戻りコードのいずれかが一意名-2 に格納され (指定時)、以下の処理のいずれかが実行される。
- ON EXCEPTION 指定が記述されている場合、制御が無条件文-1 に移される。それから、無条件文-1 に指定されている各文の規則に応じて、処理が続行される。制御を明示的に移す手続き分岐文または条件文が実行されると、その文の規則に従って制御が移される。それ以外の場合は、無条件文-1 の実行が終了すると制御は WAIT 文の末尾に移され、NOT ON EXCEPTION 指定は記述されていても無視される。
- それ以外の場合は、NOT ON EXCEPTION 指定または STATUS 指定が記述されていると、制御は WAIT 文の末尾に移され、NOT ON EXCEPTION 指定は記述されていても無視される。
- それ以外の場合は、実行単位はランタイム システム エラーで終了する。
- WAIT 動詞が成功した場合は、以下の処理が指定された順に実行される。
- STATUS 指定が記述されていると、ゼロが一意名-2 に格納される。
- NOT ON EXCEPTION 指定が記述されていると、制御が無条件文-2 に移される。それから、無条件文-2 に指定されている各文の規則に応じて、処理が続行される。制御を明示的に移す手続き分岐文または条件文が実行されると、その文の規則に従って制御が移される。それ以外の場合は、無条件文-2 の実行が終了すると制御は WAIT 文の末尾に移され、ON EXCEPTION 指定は記述されていても無視される。
書き方 2 の一般規則 (イベント)
- 正常な WAIT 文は、イベントポインタ-1 によって参照されるイベントが TRUE になるまで実行を中断する。
注:文の実行時にイベントポインタ-1 によって参照されるイベントが TRUE である場合は、実行が直ちに再開される。
- WAIT 文が失敗すると、実行単位はランタイム システム エラーで終了する。