Provided by: glibc-doc_2.9-0ubuntu6_all
 

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 ter-
        minate. If cancellation  occurs  during  pthread_join,  the  th  thread
        remains not joined.
        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>
        pthread_exit(3),         pthread_detach(3),          pthread_create(3),
        pthread_attr_setdetachstate(3),                pthread_cleanup_push(3),
        pthread_key_create(3).
 
                                  LinuxThreads                  PTHREAD_JOIN(3)