NAME

LIBRARY

SYNOPSIS

STANDARDS

Interfaces documented on this reference page conform to industry
standards as follows:

IEEE Std 1003.1c-1995, POSIX System Application Program Interface

PARAMETERS

Value copied and returned to the caller of pthread_join(3). 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(3).

DESCRIPTION

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

Any 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 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(3) is issued when a thread returns
from the start routine that was used to create it. DECthreads writes the
function's return value as the return value in the thread's thread
object. The process exits when the last running thread calls
pthread_exit(3).

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 argument of
the pthread_exit(3) routine.