omp_test_lock 関数は、指定されたロック変数に関連したロックの設定を試みます。ロックの設定に成功すると .TRUE. を戻し、そうでない場合は .FALSE. を戻します。いずれの場合も、呼び出しスレッドはプログラムにある後続の命令の実行を継続します。
結果タイプおよび属性
デフォルトの論理値
引き数タイプおよび属性
整数の kind omp_lock_kind。
結果値
関数がロックを設定できた場合は .TRUE.。それ以外の場合は .FALSE.。
例
USE omp_lib INTEGER LCK INTEGER ID CALL omp_init_lock (LCK) !$OMP PARALLEL SHARED(LCK), PRIVATE(ID) ID = omp_get_thread_num() DO WHILE (.NOT. omp_test_lock(LCK)) CALL WORK_A (ID) END DO CALL WORK_B (ID) CALL omp_unset_lock (LCK) !$OMP END PARALLEL CALL omp_destroy_lock (LCK)
この例では、ロック変数 LCK を設定できるまで、スレッドが WORK_A の実行を繰り返します。ロック変数の設定に成功すると、WORK_B を実行します。