指定したエントリ ポイントからスレッドを作成します。
構文:
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 |
entry-name |
pic x(n) 空白終了または null 終了 |
pic x(n) 空白終了または null 終了 |
thread-param |
pic x(n) 空白終了または null 終了 |
任意のデータ項目 |
param-size |
cblt-os-size |
pic x(4) comp-5 または
pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)
|
flags |
cblt-os-flags |
pic x(4) comp-5 または
pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)
|
priority |
cblt-sx4-comp5 |
pic s9(9) comp-5 |
stack-size |
cblt-os-size |
pic x(4) comp-5 または
pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)
|
thread-id |
cblt-pointer |
USAGE POINTER |
入力パラメーター:
- entry-name
- スレッドの空白文字または null で終了する名前。
- thread-param
- 新しいスレッドに渡すパラメーター。
- param-size
- 次のいずれかの値に設定します。
0 |
データ値をコピーすることなく、thread-param のアドレスのみが新しいスレッドのエントリ ポイントにパラメーターとして渡されます |
>0 |
thread-param の値が param-size の長さだけコピーされ、このコピー領域のアドレスが新しいスレッドに渡されます。CBL_THREAD_CREATE の呼び出しの直後に作成元のスレッドによって thread-param が変更または割り当て解除された場合でも、作成されたスレッドに対しては thread-param の値はそのままになります |
- flags
- 数値。次のようにビットを設定できます。
- ビット 0
-
0 |
スレッドが終了したら直ちにスレッドをデタッチします |
1 |
すぐにはスレッドをデタッチしません。スレッドが終了していても、そのリソースはスレッドがデタッチされるまで解放されません |
- ビット 1
-
0 |
スレッドの優先度は相対値 (-100 から +100) です |
1 |
スレッドの優先度は絶対値 (0 から 100) です |
- ビット 2
-
0 |
スレッドが終了した際にこのスレッドによってロックされているモニターまたはミューテックスがあると、ランタイム システム エラーが発生します |
1 |
スレッドが終了した際にモニターまたはミューテックスがロックされていても、エラーは発生しません |
- ビット 3
-
0 |
作成したスレッドをアクティブにする |
1 |
作成したスレッドをサスペンド状態にする制約事項: これは .NET 環境では非推奨です。
|
- ビット 4
-
0 |
マルチスレッド アパートメント モデル (MTA) |
1 |
シングルスレッド アパートメント モデル (STA) |
- 上記以外のビット
- 予約済み
- priority
- 優先度を設定します。通常、優先度は、-100 から +100 の範囲内の値であり、現在のスレッドの優先度を基準とします。-1 と +1 は、呼び出し元よりも低いまたは高い優先度をスレッドに設定する (呼び出し元の優先度がすでに最低値または最高値である場合を除く) 最小単位の増減値です。指定した負の値または正の値によって、スレッドの優先度が限度を下回るまたは上回る場合は、最低値または最高値が使用されます。flags のビット 1 が 1 に設定されている場合、優先度は 0 から 100 の絶対値になります。
- stack-size
- 新しいスレッドに割り当てるスタックのサイズをランタイム システムに通知します。値が 0 の場合、有効なデフォルト値が使用されます。このパラメーターが無効と見なされた場合は、無視されるか、無効な値が指定されたことを示すエラーが返されます。
説明:
指定したエントリ ポイントは任意の言語で実装できます。
呼び出しが成功し、新しいスレッドが作成されると、そのスレッド識別子が thread-id に格納され、RETURN-CODE が 0 に設定されます。これは、スレッドが作成されてデタッチされる場合にも当てはまります。ただし、この場合、呼び出し元は、他の呼び出しで thread-id を使用する前に新しいスレッドがまだ存在することを必ず確認する必要があります。
呼び出しが失敗した場合、thread-id は NULL に設定され、エラー番号が RETURN-CODE に設定されます。