XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

omp_test_lock

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

注:
まだ初期化されていないロック変数を指定して omp_test_lock を呼び出すと、その結果は未定義になります。

結果タイプおよび属性

デフォルトの論理値

引き数タイプおよび属性

整数の 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 を実行します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]