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.