Namespaces
Variants

thrd_exit

From cppreference.net
定義済みヘッダ <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 EXIT_SUCCESS を引数として呼び出したかのようにプログラム全体が終了します(そのため、 atexit で登録された関数はその最後のスレッドのコンテキストで実行されます)

目次

パラメータ

res - 返される結果値

戻り値

(なし)

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.26.5.5 thrd_exit関数 (p: 280)
  • C11標準 (ISO/IEC 9899:2011):
  • 7.26.5.5 thrd_exit関数 (p: 384)

関連項目

スレッドが終了するまでブロックする
(関数)
スレッドをデタッチする
(関数)