CBL_THREAD_CREATE

名前付き入口点からスレッドを作成する。

構文:
call "CBL_THREAD_CREATE" using by reference entry-name
                         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-name pic x(n) space or null terminated pic x(n) space or null terminated
thread-param pic x(n) space or null 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-name スペースまたはナルで終わるスレッドの名前
thread-param 新しいスレッドに渡されるパラメータ
param-size 次のうちの1つを設定する。
0 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に設定される。これは、スレッドが作成時に切り離された場合でも行われる。ただし、この場合、呼出し側は他の呼出しでそのthread-idが使用されるまでは新しいスレッドがそのまま存在するように気を付けること。

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

他参照:

関連項目