Documentation Archive Developer
ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages


This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).

PTHREAD_JOIN(3)          BSD Library Functions Manual          PTHREAD_JOIN(3)

     pthread_join -- wait for thread termination

     #include <pthread.h>

     pthread_join(pthread_t thread, void **value_ptr);

     The pthread_join() function suspends execution of the calling thread
     until the target thread terminates, unless the target thread has already

     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, the target thread is not detached.

     If successful,  the pthread_join() function will return zero.  Otherwise,
     an error number will be returned to indicate the error.

     pthread_join() will fail if:

     [EDEADLK]          A deadlock was detected or the value of thread speci-fies specifies
                        fies the calling thread.

     [EINVAL]           The implementation has detected that the value speci-fied specified
                        fied by thread does not refer to a joinable thread.

     [ESRCH]            No thread could be found corresponding to that speci-fied specified
                        fied by the given thread ID, thread.

     wait(2), pthread_create(3)

     pthread_join() conforms to ISO/IEC 9945-1:1996 (``POSIX.1'').

BSD                              April 4, 1996                             BSD