スポンサーリンク

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

名称

pthread_join − スレッド終了の待機

ライブラリ

Reentrant C Library (libc_r, −pthread)

書式

#include <pthread.h>

int

pthread_join(pthread_t thread, void **value_ptr);

解説

pthread_join() 関数は、対象 thread がまだ終了していない場合には、その対象 thread が終了するまで、呼び出しているスレッドの実行を保留します。

NULL ではない value_ptr 引数を持つ pthread_join() の呼び出しから成功裏に 戻った時には、終了したスレッドによって pthread_exit() に渡された値が、 value_ptr によって参照される位置に格納されます。 pthread_join() が成功裏 に戻った時には、その対象スレッドは既に終了しています。同じ対象スレッドを 指定した複数で同時の pthread_join() の呼び出しによる結果は、未定義です。 pthread_join() を呼び出しているスレッドが取り消された場合には、その対象ス レッドはデタッチされません。

既に終了したが持ち受けされずに残っているスレッドは、 [_POSIX_THREAD_THREADS_MAX] に対してカウントされます。

戻り値

問題がない場合は、 pthread_join() 関数は 0 を返します。問題がある場合は、 そのエラーを示すためにエラー番号が返されます。

エラー

pthread_join() は以下の場合に失敗します。

       [EINVAL]

thread によって指定された値が、待機されることが可能な スレッドを参照していないことを検出しました。

[ESRCH]
与えられたスレッド ID, thread によって指定されたものと 一致するスレッドを見つけることができません。

[EDEADLK]
デッドロックを検出しました。または、 thread の値が呼び 出しているスレッドを指定しています。

関連項目

wait(2), pthread_create(3)

規格

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

FreeBSD 10.0 April 4, 1996 FreeBSD 10.0

スポンサーリンク