スレッドローカルの COBOL 実行環境を整理します。
#include "cobmain.h" int cobthreadtidy(void);
なし
この関数は、COBOL 環境を現在のスレッドに初期設定を解除し、スレッド状態の情報を解消し、スレッドローカルとして割り当てられたデータを解放します。 成功時jには 0 を返却します。
この関数は、非 COBOL の API 呼び出し、 すなわち、スレッドが C ライブラリ、オペレーティングシステムやサードパーティのスレッドの API 呼び出しで生成された場合にのみ使用されます。 スレッドが COBOL 構文や CBL_THREAD_CREATE ライブラリルーチンで生成された場合は、呼び出しできません。 COBOL プログラムから直接 cobthreadtidy() を呼び出すことはできません。
この関数は、すべての COBOL プログラムがそのスレッドで終了し、再び呼び出さない場合に、呼び出すことができます。 COBOL 入口点や COBOL ルーチン (cobinit() など) を cobthreadtidy() の後で呼び出すと、その結果は予測できません。
なし
C スレッドが生成されると、そのスレッドの初期の入口点になる C 関数を指定する必要があります。 この入口点が c_thread() の場合、次のようになります。
c_thread(void)
{
cobinit(); /* このプロセスで */
/* 既に呼び出されていない */
/* 場合にのみ必要 */
cobcall("cobep", 0, NULL); /* COBOL プログラムの呼び出し */
cobthreadtidy(); /* このスレッドでの */
/* COBOL 環境の整理 */
return 0; /* スレッド終了 */
}