HP-UX Reference (11i v2 04/09) - 3 Library Functions N-Z (vol 7)
p
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 descrip-
tors. 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 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.
Section 3−−784 Hewlett-Packard Company − 1 − HP-UX 11i Version 2: September 2004