f_pthread_cleanup_push(cleanup, flag, arg)

目的

この関数は、呼び出しスレッドにクリーンアップ・サブルーチンを 登録するために使用できます。 呼び出しスレッドの予期しない終了に対しては、その呼び出しスレッドが安全に 終了できるように、システムが自動的にクリーンアップ・サブルーチンを実行します。 引き数 cleanup は、ただ 1 つの引き数を予期するサブルーチン でなければなりません。 それが実行される場合、引き数 arg は実引き数としてその サブルーチンに渡されます。

引き数 arg は汎用引き数であり、 任意の型やランクにすることができます。 実引き数 arg は変数でなければならず、代入ステートメントの左に 代入できなければなりません。ベクトル添え字を持つ配列セクションを引き数 arg に渡すと、 結果は予測できません。

実引き数 arg が配列セクションである場合、サブルーチン cleanup の 対応する仮引き数は想定形状配列でなければなりません。 そうでない場合、結果は予測できません。

実引き数 arg が、配列または配列セクションを指すポインター属性を持っている場合、 サブルーチン cleanup 内の対応する仮引き数は、 ポインター属性を持っているか、または想定形状配列でなければなりません。 そうでない場合、結果は予測できません。

通常の実行パスの場合、この関数は f_pthread_cleanup_pop への呼び出し と組み合わせて使わなければなりません。

引き数 flag は、引き数 arg の特性を正確にシステムに伝える ために使用しなければなりません。

クラス

関数

引き数の型と属性

cleanup
1 つの仮引き数を持つサブルーチン。

flag
フラグは、INTEGER(4)、INTENT(IN) 引き数で、 この引き数には以下の定数のいずれか、または以下の定数を組み合わせたものを値として指定できます。

FLAG_CHARACTER:
入り口サブルーチン cleanup が型 CHARACTER の 引き数を、方法や形式に関係なく予期している場合は、 このフラグ値を組み込んでそのことを示さなければなりません。 ただし、サブルーチンが予期しているのが、型 CHARACTER の 引き数を指し示した Fortran 90 ポインターであれば、FLAG_DEFAULT 値 を代わりに組み込む必要があります。

FLAG_ASSUMED_SHAPE:
入り口サブルーチン cleanup が仮引き数を持ち、 それが任意のランクの、想定された形状の配列である場合は、 このフラグ値を組み込んでそのことを示さなければなりません。

FLAG_DEFAULT:
上記以外の場合には、このフラグ値が必要です。

arg
任意の型、kind、およびランクにすることができる汎用引き数。

結果の値と属性

INTEGER(4)

結果の値

正常終了した場合、この関数は 0 を戻します。 それ以外の場合は、以下のいずれかのエラーを戻します。

ENOMEM
システムは、このルーチンをプッシュするためのメモリーを割り振ることができません。

EAGAIN
システムは、このルーチンをプッシュするためのリソースを割り振ることができません。

EINVAL
引き数 flag が無効です。
IBM Copyright 2003