int
pthread_join(
pthread_t thread
, void **value_ptr
)
)
function suspends execution of the calling thread until the target
thread
terminates unless the target
thread
has already terminated.
On return from a successful
pthread_join()
call with a non-NULL
value_ptr
argument, the value passed to
pthread_exit()
by the terminating thread is stored in the location referenced by
value_ptr
.
When a
pthread_join()
returns successfully, the target thread has been terminated.
The results
of multiple simultaneous calls to
pthread_join(
)
specifying the same target thread are undefined.
If the thread calling
pthread_join(
)
is cancelled, then the target thread is not detached.
A thread that has exited but remains unjoined counts against
_POSIX_THREAD_THREADS_MAX
.
)
function will return zero.
Otherwise an error number will be returned to
indicate the error.
)
shall fail if:
EINVAL
]
thread
does not refer to a joinable thread.
ESRCH
]
thread
.
pthread_join()
may fail if:
EDEADLK
]
thread
specifies the calling thread.
)
conforms to
ISO/IEC 9945-1:1996 (``POSIX.1'') .