omp_test_lock(svar)

目的

omp_test_lock 関数は、 指定されたロック変数に関連したロックの設定を試みます。 ロックの設定に成功すると .TRUE. を戻し、そうでない場合は .FALSE.を戻します。 いずれの場合も、呼び出しスレッドはプログラムにある後続の命令の実行を継続します。

初期化されていないロック変数を使用して omp_test_lock を呼び出した場合、 呼び出しの結果は不確定です。

クラス

関数

引き数の型と属性

svar
整数の kind omp_lock_kind

結果の値と属性

デフォルトの論理値

結果の値

関数がロックを設定できた場合は .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)
IBM Copyright 2003