Standard C Library Functions thr_join(3C)
NAME
thr_join - wait for thread termination
SYNOPSIS
cc -mt [ flag... ] file...[ library... ]
#include
int thr_join(thread_t thread, thread_t *departed, void **status);
DESCRIPTION
The thr_join() function suspends processing of the calling
thread until the target thread completes. The thread argu-
ment must be a member of the current process and cannot be adetached thread. See thr_create(3C).
If two or more threads wait for the same thread to complete, all will suspend processing until the thread has terminated, and then one thread will return successfully and the otherswill return with an error of ESRCH. The thr_join() function
will not block processing of the calling thread if the tar-
get thread has already terminated.If a thr_join() call returns successfully with a non-null
status argument, the value passed to thr_exit(3C) by the
terminating thread will be placed in the location referenced by status.If the target thread ID is 0, thr_join() finds and returns
the status of a terminated undetached thread in the process.If no such thread exists, it suspends processing of the cal-
ling thread until a thread for which no other thread iswaiting enters that state, at which time it returns success-
fully, or until all other threads in the process are eitherdaemon threads or threads waiting in thr_join(), in which
case it returns EDEADLK. See NOTES. If departed is not NULL, it points to a location that is setto the ID of the terminated thread if thr_join() returns
successfully.RETURN VALUES
If successful, thr_join() returns 0. Otherwise, an error
number is returned to indicate the error.ERRORS
EDEADLK A joining deadlock would occur, such as when a thread attempts to wait for itself, or theSunOS 5.11 Last change: 27 Mar 2000 1
Standard C Library Functions thr_join(3C)
calling thread is waiting for any thread to exit and only daemon threads or waiting threads exist in the process.ESRCH No undetached thread could be found correspond-
ing to the given thread ID.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
thr_create(3C), thr_exit(3C), wait(3C), attributes(5), stan-
dards(5) NOTESUsing thr_join(3C) in the following syntax,
while (thr_join(0, NULL, NULL) == 0);
will wait for the termination of all non-daemon threads,
excluding threads that are themselves waiting in thr_join().
SunOS 5.11 Last change: 27 Mar 2000 2