CBL_THREAD_CREATE_P

手続きポインタからスレッドを作成する。

構文:
call "CBL_THREAD_CREATE_P" using  by value entry-point
                           by reference    thread-param
                           by value        param-size
                           by value        flags
                           by value        priority
                           by value        stack-size
                           by reference    thread-id
パラメタ:
呼び出しプロトタイプ使用時 ( 説明の読み方) PIC (32bitシステム)
entry-point cblt-ppointer usage procedure-pointer.
thread-param pic x(n) null or space terminated Any data item.
param-size cblt-os-size pic x(4) comp-5.
flags cblt-os-flags pic x(4) comp-5.
priority cblt-sx4-comp5 pic s9(9) comp-5
stack-size cblt-os-size pic x(4) comp-5.
thread-id cblt-pointer usage pointer.
入力パラメタ:
entry-point 実行するプログラムの適切な入口点に設定された手続きポインタ
thread-param 新しいスレッドに渡されるパラメタ
param-size 次のうちの1つを設定する。
0 何もデータ値をコピーせずにthread-paramのアドレスだけがパラメタとして新しいスレッドの 入口点に渡される。
>0 thread-paramの値がパラメタサイズの長さ用にコピーされ、このコピー領域のアドレスが 新しいスレッドに渡される。thread-paramの値は、作成中のスレッドがCBL_THREAD_CREATE呼出し の直後にthread-paramを変更するか割当てを解除しても作成されたスレッドのため、そのままで残さ れる。
flags 次のようにビットを設定できる。
ビット 内容
0
0

スレッドが終了すると、直ちにスレッドを切り離す。

1

スレッドを直ちに切り離さない。スレッドが終了しても、リソースはスレッドが切り離されるまでは解放されない。

1
0

相対的なスレッド優先順位(-100~+100)

1

絶対的なスレッド優先順位(0~100)

2
0

スレッドが終了したときにスレッドによってロックされているモニターは、実行時システムエラーを起こす可能性がある。

1

スレッドが終了したときにモニターがロックされていてもエラーは発生しない。

3
0

スレッドをアクティブにする。

1

スレッドをサスペンドする。

4-31

予約済み

priority

優先順位を設定する。通常、優先順位は-100から+100までの値で現行のスレッド優先順位と相対的な値。-1および+1は、スレッドに 呼出し側よりも低い/高い優先順位を与える最小の減少/増加を示す(呼出し側にすでに最低/最高優先順位が設定されてない場合)。 負または正の値により実際に設定できる優先順位よりも低い/高い優先順位が設定された場合、可能な範囲内で最小/最大の値が使用される。 flagsのビット1に1が設定された場合、優先順位は絶対値0から100までの値を取る。

stack-size

実行時システムに、スタックのサイズを新しいスレッドに通知させる。0を設定すると、省略値が使用される。パラメタが不正な ことがわかると、実行時システムはそれを無視するか不正な値が設定されたことを示すエラーを返す。

出力パラメタ:
thread-id

スレッド識別子

return-code

成功したか否かを示す値。詳細は、 「スレッド制御ルーチンのRETURN-CODE値」を参照のこと。

説明:

指定された入口点は、どの言語でも実行できる。

呼出しが成功して新しいスレッドが作成された場合、そのスレッドの識別子はthread-idに格納され、RETURN-CODEは0に設定される。これは、スレッドが作成時に切り離された場合でも行われる。ただし、この場合、呼出し側は他の呼出しでスレッドIDが使用されるまでは新しいスレッドがそのまま存在するように気を付けること。

呼出しが失敗すると、thread-idはナルに、エラー番号はRETURN-CODEに設定される。

他参照:

関連項目