pthread_exit(3T)                                           pthread_exit(3T)
                               Pthread Library

 NAME
      pthread_exit() - cause the calling thread to terminate.

 SYNOPSIS
      #include <pthread.h>

      void pthread_exit(
         void *value_ptr
      );

 PARAMETERS
           value_ptr The calling thread's exit status.

 DESCRIPTION
      pthread_exit() terminates the calling thread.  The calling thread
      returns an exit status in value_ptr.  This value is returned to a
      joining thread calling pthread_join() on the terminating thread.  Only
      threads created with the detachstate attribute value
      PTHREAD_CREATE_JOINABLE can return an exit status to pthread_join().
      The exit status of a detached thread is lost when the thread
      terminates.

      When a thread terminates, process-shared resources are not released.
      Examples of process-shared resources include mutexes, condition
      variables, semaphores, message queue descriptors, and file
      descriptors.  The atexit() routines are not called when a thread
      terminates as this is a process termination action.

      An implicit call to pthread_exit() is made when a thread returns from
      its start routine.  The function's return value serves as the thread's
      exit status (see pthread_create(3T)).  If the main thread returns from
      main() without calling pthread_exit(), the process will exit using the
      return value from main() as the exit status.  If the main thread calls
      pthread_exit(), the process will continue executing until the last
      thread terminates or a thread calls exit().  After the last thread in
      the process terminates, the process will exit with an exit status of
      zero.

      Any installed cancellation cleanup handlers will be popped and
      executed in the reverse order that they were installed.  After the
      cancellation cleanup handlers have been executed, if the thread has
      any non-NULL thread-specific data values with associated destructor
      functions, the destructor functions are called.  The order in which
      these destructor functions are called is unspecified.

      Calling pthread_exit() from a cancellation cleanup handler or
      destructor function that was invoked because of thread termination
      results in undefined behavior.

      After a thread has terminated, the result of access to local (auto)
      variables of the thread is undefined.  The terminating thread should

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

 pthread_exit(3T)                                           pthread_exit(3T)
                               Pthread Library

      not use local variables for the value_ptr parameter value.

 RETURN VALUE
      None.

 ERRORS
      None, this function does not return.

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

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

 STANDARDS CONFORMANCE
      pthread_exit(): POSIX 1003.1c.