標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
Language Environment | C のみ |
#include <mtf.h>
int tinit(const char *parallel_loadmod_name, int num_subtasks);
MVS で、マルチタスキング機能 (MTF) 環境を初期設定します。
ユーザーのネーム・スペースが侵害されるのを回避するため、この非標準関数には 2 つの名前があります。1 つの名前の接頭部には 2 つの下線文字が付き、もう 1 つの名前の接頭部には付きません。接頭部下線文字が付いていない名前は、LANGLVL(EXTENDED) を使用する場合にのみ表示されます。
この関数を使用するには、その外部エントリー・ポイント名 (2 つの下線文字で始まる名前) を使用して呼び出すか、LANGLVL(EXTENDED) を使用してコンパイルする必要があります。LANGLVL(EXTENDED) を使用すると、ヘッダー内の関連情報も表示されます。
num_subtasks によって指定されたサブタスク数を動的に付加および初期設定するために、メインタスクから tinit() が呼び出されます。ここで、num_subtasks は 1 ~ MAXTASK の範囲 (ヘッダー・ファイル mtf.h に定義されている) に入っています。サブタスクが tinit() によって付加および初期設定された後で、各サブタスクは task_id が提供され、tsched() および tsyncro() ライブラリー関数の制御のもとで、メインタスクと並行して独立プログラムを計算できます。
並列ロード・モジュール (parallel_loadmod_name) には すべての並列関数が含まれていて、プログラムを実行する JCL の STEPLIB DD ステートメントに指定された 区分データ・セットに常駐している必要があります。
tinit() 関数は、tterm() を呼び出す前に一度だけメインタスクによって呼び出せます。最初の tinit() 呼び出し以後の tinit() の起動は、MTF が既にアクティブになっていることを示す戻り値で終了します。
tterm() を呼び出して MTF 環境を終了して除去した後、または異常終了の後で、tinit() を再度呼び出して、新規の MTF 環境を作成できます。新規の初期設定は旧の初期設定 とは無関係で、異なる数のタスクまたは異なる並列ロード・モジュール あるいはその両方を提供できます。
tinit() が並列関数から呼び出されると、tinit() は、並列関数 から MTF 呼び出しを発行できないこと を示す戻り値で終了します。
tinit() が IMS、CICS、または DB2 のもとで実行している プログラムによって呼び出された場合には、要求は処理されず、戻り値は MTF 呼び出しがこれらのシステムではサポートされない ことを指示します。
サブタスクが正常に付加され、MTF 環境が作成されると、tinit() は、MTF_OK を戻します。
正常に実行されなかった場合、tinit() は errno を次のいずれかの値に設定します。