cobthreadtidy

スレッド ローカルの COBOL ランタイム環境を整理します。
制約事項: この関数は、ネイティブ COBOL でのみサポートされます。

構文:

#include "cobmain.h"

int cobthreadtidy(void);

パラメーター:

なし

説明:

この関数は、現在のスレッドに対する COBOL 環境の初期設定を解除し、スレッド状態情報をクリアして、スレッド ローカルとして割り当てられたデータを解放します。成功時には 0 を返します。

この関数は、非 COBOL の API 呼び出し、すなわち、スレッドが C ライブラリ、オペレーティング システムやサード パーティのスレッドの API 呼び出しで生成された場合にのみ使用されます。COBOL 構文や CBL_THREAD_CREATE ライブラリ ルーチンで生成したスレッドで使用すべきではありません。COBOL プログラムから直接 cobthreadtidy() を呼び出すことはできません。

この関数は、すべての COBOL プログラムがそのスレッドで終了し、再び呼び出さない場合にのみ呼び出します。COBOL エントリ ポイントや COBOL ルーチン (cobinit() など) を cobthreadtidy() の後で呼び出すと、その結果は予測できません。

相当する COBOL 構文:

なし。

例:

C のスレッドの生成時には、そのスレッドの最初のエントリ ポイントとなる C の関数を指定する必要があります。次のコード例は、該当するエントリ ポイント、c_thread() で次の処理を行う方法を示しています。

  • 引数を持たない COBOL エントリ ポイント cobep を呼び出します。
  • スレッドが消滅する前に cobthreadtidy() を呼び出します。
c_thread(void)
{
    cobinit();                  /* Only required if not   */
                                /* already called in this */
                                /* process                */
    cobcall("cobep", 0, NULL);  /* Call COBOL */
    cobthreadtidy();            /* Tidy up COBOL in this  */
                                /* thread */  

    return 0;                   /* Exit thread */
}