マルチスレッドのプログラミング

pthread_join の戻り値

pthread_join() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると、pthread_join() は失敗し、次の値を返します。


ESRCH

説明:

指定のスレッド ID に対応するスレッドが見つかりません。


EDEADLK

説明:

デッドロックが発生しています。たとえば、スレッドが自身を待機していたり、スレッド A とスレッド B が互いに待機し合っていたりします。


EINVAL

説明:

指定のスレッド ID に対応するスレッドは、切り離されています。

pthread_join() は、切り離されていないスレッドに対してだけ有効です。終了時のタイミングで特に同期をとる必要がないスレッドは、切り離して生成してください。