Content-type: text/html
Manpage of PTHREAD_JOIN
PTHREAD_JOIN
Section: C Library Functions (3)
Updated: LinuxThreads
Index
Return to Main Contents
NAME
pthread_join - wait for termination of another thread
SYNOPSIS
#include <pthread.h>
int pthread_join(pthread_t th, void **thread_return);
DESCRIPTION
pthread_join
suspends the execution of the calling thread until the
thread identified by
th
terminates, either by calling
pthread_exit(3)
or by being cancelled.
If
thread_return
is not
NULL,
the return value of
th
is stored
in the location pointed to by
thread_return.
The return value of
th
is either the argument it gave to
pthread_exit(3),
or
PTHREAD_CANCELED
if
th
was cancelled.
The joined thread
th
must be in the joinable state: it must not have
been detached using
pthread_detach(3)
or the
PTHREAD_CREATE_DETACHED
attribute to
pthread_create(3).
When a joinable thread terminates, its memory resources (thread
descriptor and stack) are not deallocated until another thread
performs
pthread_join
on it. Therefore,
pthread_join
must be
called once for each joinable thread created to avoid memory leaks.
At most one thread can wait for the termination of a given
thread. Calling
pthread_join
on a thread
th
on which another
thread is already waiting for termination returns an error.
CANCELLATION
pthread_join
is a cancellation point. If a thread is canceled while
suspended in
pthread_join,
the thread execution resumes immediately
and the cancellation is executed without waiting for the
th
thread
to terminate. If cancellation occurs during
pthread_join,
the
th
thread remains not joined.
RETURN VALUE
On success, the return value of
th
is stored in the location pointed
to by
thread_return,
and 0 is returned. On error, a non-zero error
code is returned.
ERRORS
- ESRCH
-
No thread could be found corresponding to that specified by
th.
- EINVAL
-
The
th
thread has been detached.
- EINVAL
-
Another thread is already waiting on termination of
th.
- EDEADLK
-
The
th
argument refers to the calling thread.
AUTHOR
Xavier Leroy <Xavier.Leroy@inria.fr>
SEE ALSO
pthread_exit(3),
pthread_detach(3),
pthread_create(3),
pthread_attr_setdetachstate(3),
pthread_cleanup_push(3),
pthread_key_create(3).
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- CANCELLATION
-
- RETURN VALUE
-
- ERRORS
-
- AUTHOR
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 09:41:15 GMT, November 29, 2004