pthread_join(3T)                                           pthread_join(3T)
                               Pthread Library

 NAME
      pthread_join() - wait for the termination of a specified thread.

 SYNOPSIS
      #include <pthread.h>

      int pthread_join(
         pthread_t thread,
         void **value_ptr
      );

 PARAMETERS
           thread    Thread whose termination is awaited by the caller.

           value_ptr Pointer to the location where the exit status of thread
                     is returned.

 DESCRIPTION
      The pthread_join() function waits for the termination of the target
      thread.  If the target thread has already terminated, this function
      returns immediately.  Only threads created with a detachstate
      attribute value of PTHREAD_CREATE_JOINABLE may be specified in the
      target thread parameter.  On successful return from pthread_join(),
      the value_ptr argument, if it is not a null pointer, will contain the
      value passed to pthread_exit() by the terminating thread.

      When a pthread_join() call returns successfully, the caller is
      guaranteed the target thread has terminated.  If more than one thread
      calls pthread_join() for the same target thread, one thread is
      guaranteed to return successfully.  Undefined behavior results for
      other callers specifying the same thread.

      If the thread calling pthread_join() is canceled, the target thread
      shall not be joined.  The exit status of the target thread will remain
      available for another thread to call pthread_join().

      If the target thread was canceled, its exit status is
      PTHREAD_CANCELED.

      It is unspecified whether a thread that has exited, but remains
      unjoined, counts against the {_POSIX_THREAD_THREADS_MAX} limit.

 RETURN VALUE
      Upon successful completion, pthread_join() returns zero. Otherwise, an
      error number is returned to indicate the error (the errno variable is
      not set).

 ERRORS
      If any of the following occur, the pthread_join() function returns the
      corresponding error number:

 Hewlett-Packard Company            - 1 -  HP-UX Release 11.00: October 1997

 pthread_join(3T)                                           pthread_join(3T)
                               Pthread Library

           [EINVAL]       The value specified by thread does not refer to a
                          joinable thread.

           [ESRCH]        No thread could be found corresponding to thread.

      For each of the following conditions, if the condition is detected,
      the pthread_join() function returns the corresponding error number:

           [EDEADLK]      This operation would result in process deadlock or
                          thread specifies the calling thread.

 AUTHOR
      pthread_join() was derived from the IEEE POSIX P1003.1c standard.

 SEE ALSO
      pthread_create(3T), wait(2).

 STANDARDS CONFORMANCE
      pthread_join(): POSIX 1003.1c.