目的
omp_test_lock 関数は、 指定されたロック変数に関連したロックの設定を試みます。 ロックの設定に成功すると .TRUE. を戻し、そうでない場合は .FALSE.を戻します。 いずれの場合も、呼び出しスレッドはプログラムにある後続の命令の実行を継続します。
初期化されていないロック変数を使用して omp_test_lock を呼び出した場合、 呼び出しの結果は不確定です。
クラス
関数
引き数の型と属性
結果の値と属性
デフォルトの論理値
結果の値
関数がロックを設定できた場合は .TRUE.、それ以外の場合は .FALSE.。
例
この例では、ロック変数 LCK を設定できるまで、スレッドが WORK_A の実行を繰り返します。 ロック変数が設定されると、スレッドが WORK_B を実行します。
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)