Blocks the calling thread until a specified thread terminates.
Syntax
#include <prthread.h> PRStatus PR_JoinThread(PRThread *thread);
Parameter
PR_JoinThread
has the following parameter:
thread
- A valid identifier for the thread that is to be joined.
Returns
The function returns one of the following values:
- If successful,
PR_SUCCESS
- If unsuccessful--for example, if no joinable thread can be found that corresponds to the specified target thread, or if the target thread is unjoinable--
PR_FAILURE
.
Description
PR_JoinThread
is used to synchronize the termination of a thread. The function is synchronous in that it blocks the calling thread until the target thread is in a joinable state. PR_JoinThread
returns to the caller only after the target thread returns from its root function.
PR_JoinThread
must not be called until after PR_CreateThread
has returned. If PR_JoinThread
is not called on the same thread as PR_CreateThread
, then it is the caller's responsibility to ensure that PR_CreateThread
has completed.
Several threads cannot wait for the same thread to complete. One of the calling threads operates successfully, and the others terminate with the error PR_FAILURE
.
The calling thread is not blocked if the target thread has already terminated.
PR_JoinThread
is interruptable.