名前空間
変種
操作

thrd_exit

From cppreference.com
ヘッダ<threads.h>で定義
_Noreturn void thrd_exit( int res );
(C11 以降)
(C23まで)
[[noreturn]] void thrd_exit( int res );
(C23以降)

まず、NULLではないデストラクタで作成され、関連付けられた値がNULLではない(tss_createを参照)すべてのスレッドローカルストレージキーについて、thrd_exitはキーに関連付けられた値をNULLに設定してから、キーの以前の値とともにデストラクタを呼び出します。デストラクタが呼び出される順序は未指定です。

この後、NULLではないデストラクタと値を持つキーが残っている場合(例えば、デストラクタがtss_setを実行した場合)、プロセスはTSS_DTOR_ITERATIONS回まで繰り返されます。

最後に、thrd_exit関数は呼び出し元スレッドの実行を終了し、その結果コードをresに設定します。

プログラムの最後のスレッドがthrd_exitで終了した場合、プログラム全体が、引数としてEXIT_SUCCESSを指定してexitを呼び出したかのように終了します(そのため、atexitによって登録された関数は、その最後のスレッドのコンテキストで実行されます)。

目次

[編集] パラメータ

res - 返す結果値

[編集] 戻り値

(なし)

[編集] 参考文献

  • C17標準 (ISO/IEC 9899:2018)
  • 7.26.5.5 The thrd_exit function (p: 280)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.26.5.5 The thrd_exit function (p: 384)

[編集] 関連項目

スレッドが終了するまでブロックする
(関数) [編集]
スレッドをデタッチする
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)