REENTRANT

マルチスレッドプログラムの再入を制御する。プログラムをマルチスレッドアプリケーションに再入できるようにするには、本指令を指定してコンパイルする必要がある。REENTRANT指令が指定されると、多くのプログラム領域が動的に割り当てられ同じプログラムを複数、同時に実行することができる。

構文:
>>-.---.-.-----REENTRANT---"n"--.-------><
   +-/-+ +-NO--REENTRANT--------+
パラメーター:
n いずれか1つ
1 コンパイラによって生成された一時作業領域は、スレッドベースで割り当てられる。環境部およびデータ部で割り当てられたユーザーデータ領域およびFDファイル領域は、スレッドによって共有される。プログラマは、CBL_ 同期呼び出しを使用して、プログラムのデータを確実にシリアル化する必要がある。
2 環境部およびデータ部で割り当てられたユーザーデータ領域およびFD ファイル領域は、スレッドベースで割り当てられる。EXTERNAL で指定したデータおよびファイルは、スレッドで共有される。 
属性:
省略値: NOREENTRANT
段階: 構文チェック
$SET: 初期
説明:

再入可能にしたいプログラムがある場合は、なるべく REENTRANT"1"を使用する。既存のプログラムを再入可能プログラムに変換する場合の初期段階に限り、REENTRANT"2"を使用する。

注:
コンパイラは、以下を使用するプログラムに対しては REENTRANT 指令を拒否する。 

PROGRAM-ID. … IS INITIAL 文を使用している場合、REENTRANT"1" を使用できない。さらに、プログラムが入れ子になったプログラムを含んでいない場合に限り、REENTRANT"2" を使用できる。

他参照:

関連項目