Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > P


Pthread Library
HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


pthread_exit() — cause the calling thread to terminate


#include <pthread.h>

void pthread_exit( void *value_ptr );



The calling thread's exit status.


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 not use local variables for the value_ptr parameter value.




None, this function does not return.


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


pthread_exit(): POSIX 1003.1c.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.