[Previous] [Contents] [Next]

pthread_join()

Join thread

Synopsis:

#include <pthread.h>

int pthread_join( pthread_t thread,
                  void** value_ptr );

Library:

libc

Description:

The pthread_join() function blocks the calling thread until the target thread thread terminates, unless thread has already terminated. If value_ptr is non-NULL and pthread_join() returns successfully, then the value passed to pthread_exit() by the target thread is placed in value_ptr. If the target thread has been canceled then value_ptr is set to PTHREAD_CANCELED.


Note: The non-POSIX pthread_timedjoin() function is similar to pthread_join(), except that an error is returned if the join doesn't occur before a given time.

The target thread must be joinable. Multiple pthread_join(), pthread_timedjoin(), ThreadJoin(), and ThreadJoin_r() calls on the same target thread aren't allowed. When pthread_join() returns successfully, the target thread has been terminated.

Returns:

EOK
Success.
EBUSY
The thread thread is already being joined.
EDEADLK
The thread thread is the calling thread.
EFAULT
A fault occurred trying to access the buffers provided.
EINTR
The function call was interrupted.
EINVAL
The thread thread isn't joinable.
ESRCH
The thread thread doesn't exist.

Classification:

POSIX 1003.1 (Threads)

Safety:
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

pthread_create(), pthread_detach(), pthread_exit(), pthread_timedjoin(), ThreadJoin(), ThreadJoin_r()


[Previous] [Contents] [Next]