[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]


pthread_exit

Terminates the calling thread.

Syntax

pthread_exit(
             value_ptr );
 


Argument Data Type Access

value_ptr void * read


C Binding

#include 

void pthread_exit ( void *value_ptr);

Arguments

value_ptr
Value copied and returned to the caller of pthread_join. Note that void * is used as a universal datatype, not as a pointer. DECthreads treats the value_ptr as a value and stores it to be returned by pthread_join.

Description

This routine terminates the calling thread and makes a status value (value_ptr) available to any thread that calls pthread_join and specifies the terminating thread.

Any cancellation cleanup handlers that have been pushed and not yet popped from the stack, are popped in the reverse order that they were pushed and then executed. After all cancellation cleanup handlers have been executed, appropriate destructor functions shall be called in an unspecified order if the thread has any thread- specific data. Thread termination does not release any application- visible process resources, including, but not limited to mutexes and file descriptors, nor does it perform any process-level cleanup actions, including, but not limited to calling any atexit routine that may exist.

An implicit call to pthread_exit is issued when a thread returns from the start routine that was used to create it. The function's return value serves as the thread's exit status. The process exits when the last running thread calls pthread_exit.

After a thread has terminated, the result of access to local (that is, explicitly or implicitly declared auto) variables of the thread is undefined. So, references to local variables of the existing thread should not be used for the value_ptr parameter value of the pthread_exit routine.

Return Values

None

Associated Routines

   pthread_cancel
   pthread_create
   pthread_detach
   pthread_join



[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]