CBL_SEMAPHORE_ACQUIRE

関連するカウントを減分して、セマフォによって表されるリソースの 1 つを取得します。

構文:

call "CBL_SEMAPHORE_ACQUIRE" using by value semaphore-handle
                                   by value flags
                                  [by value timeout]

パラメーター:

  呼び出しプロトタイプ使用時 (「説明の読み方」を参照) PIC
semaphore-handle cblt-pointer USAGE POINTER
flags cblt-os-flags pic x(4) comp-5

または

pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)

timeout pic x(4) comp-5

入力パラメーター:

semaphore-handle
セマフォ ハンドル。
flags
カウントがゼロである場合のルーチンの動作を決定する値。
ビット 0
0 カウントがゼロ以外になるまでスレッドまたはプロセスをブロックした後、カウントを減分して、呼び出しから戻ります。
1

timeout が指定されていない場合 (つまり、ビット 1 = 0)、減分せずに、直ちに呼び出しから戻ります。

timeout が指定されている場合 (つまり、ビット 1 = 1)、カウントがゼロ以外になるまで、またはタイムアウト期間を経過するまでブロックします。タイムアウトになった場合は、エラー コード 1010 (「使用可能なリソースがない」) を返し、それ以外の場合は、カウントを減分して呼び出しから戻ります。

ビット 1
0 タイムアウト パラメーターが指定されていません。
1 タイムアウト パラメーターが指定されており、ビット 0 が 1 の場合に使用されます。
上記以外のビット
予約済み。ゼロに設定する必要があります。
timeout
ミリ秒単位のタイムアウト値。値がゼロの場合、直ちに呼び出しから戻ります。flags パラメーターのビット 1 が 1 の場合、このパラメーターは必須です。それ以外の場合は省略可能です。

出力パラメーター:

return-code
値 0 は呼び出しが成功したことを意味し、それ以外の値はエラーを意味します。詳細については、「同期ルーチンの RETURN-CODE 値」を参照してください。

説明:

semaphore-handle の値が無効である場合、動作は不定になります。