この関数は、呼び出しスレッドにクリーンアップ・サブルーチンを登録するために使用できます。呼び出しスレッドの予期しない終了に対しては、その呼び出しスレッドが安全に終了できるように、システムが自動的にクリーンアップ・サブルーチンを実行します。引き数 cleanup は、ただ 1 つの引き数を予期するサブルーチンでなければなりません。それが実行される場合、引き数 arg は実引き数としてそのサブルーチンに渡されます。
引き数 arg は汎用引き数であり、任意のタイプやランクにすることができます。実引き数 arg は変数でなければならず、代入ステートメントの左に代入できなければなりません。ベクトル添え字を持つ配列セクションを引き数 arg に渡すと、結果は予測不能です。
実引き数 arg が配列セクションである場合、サブルーチン cleanup の対応する仮引き数は想定形状配列でなければなりません。そうでない場合、結果は予測できません。
実引き数 arg が、配列または配列セクションを指し示すポインター属性を持っている場合、サブルーチン cleanup 内の対応する仮引き数は、ポインター属性を持っているか、または想定形状配列でなければなりません。そうでない場合、結果は予測できません。
通常の実行パスの場合、この関数は f_pthread_cleanup_pop への呼び出しと組み合わせて使わなければなりません。
引き数 flag は、引き数 arg の特性を正確にシステムに伝えるために使用しなければなりません。
引き数 flag には、以下の定数のいずれか、あるいは以下の定数を組み合わせたものを値として指定できます。
戻りコード
この関数の実行中にエラーを検出すると、以下のいずれかのエラー・コードを戻します。
例
integer function f_pthread_cleanup_push(cleanup, flag, arg) external cleanup integer(4), intent(in):: flag end function