スポンサーリンク

PTHREAD_EXIT(3) FreeBSD ライブラリ関数マニュアル PTHREAD_EXIT(3)

名称

pthread_exit − 呼び出しているスレッドの終了

ライブラリ

Reentrant C Library (libc_r, −pthread)

書式

#include <pthread.h>

void

pthread_exit(void *value_ptr);

解説

pthread_exit() 関数は、呼び出しているスレッドを終了し、終了するスレッドと 成功裏に待ち受けするために value_ptr の値を利用可能にします。既にスタック に積まれていて取り出されていない取り消しクリーンアップハンドラは、積まれ たのと逆の順序で取り出され、実行されます。全ての取り消しハンドラが実行さ れた後で、スレッドがそのスレッド固有のデータを持っている場合には、適切な デストラクタ関数が順序不定で呼び出されます。スレッドの終了は、アプリケー ションから見える全てのプロセスリソースを解放しません。このリソース は、mutex およびファイル記述子を含みますが、これに限りません。また、あら ゆるプロセスレベルのクリーンアップの実行も行ないません。このクリーンアッ プは、存在する可能性のある atexit() ルーチンの呼び出しを含みますが、これ に限りません。

main() を最初に実行したスレッド以外のスレッドが、その作成に使用された開始 ルーチンから戻った時に、暗黙的に pthread_exit() が呼び出されます。関数の 戻り値は、スレッドの終了ステータスとして使用されます。

暗黙的なまたは明示的な pthread_exit() の呼び出しの結果として実行された取 り消しハンドラまたはデストラクタ関数から呼び出された場合の、 pthread_exit() の動作は未定義です。

スレッドが終了した後での、そのスレッドのローカル (auto) 変数へのアクセス の結果は未定義です。従って、終了するスレッドのローカル変数への参照は、 pthread_exit() の value_ptr パラメータの値に使用されるべきではありませ ん。

最後のスレッドが終了した後で、プロセスは終了ステータス 0 で終了します。ス レッド終了時に実装が引数 0 で exit() を呼び出したかのように動作します。

戻り値

pthread_exit() 関数は呼び出し側には戻れません。

エラー

ありません。

関連項目

_exit(2), exit(3), pthread_create(3), pthread_join(3)

規格

pthread_exit() は ISO/IEC 9945-1:1996 (‘‘POSIX.1’’) に適合しています。

FreeBSD 10.0 April 4, 1996 FreeBSD 10.0

スポンサーリンク