NAME
pthread_detach —
detach a thread
SYNOPSIS
int pthread_detach(pthread_t thread);
DESCRIPTION
The pthread_detach () function shall
indicate to the implementation that storage for the thread
thread can be reclaimed when that thread terminates. If
thread has not terminated,
pthread_detach () shall not cause it to terminate.
The effect of multiple pthread_detach () calls on
the same target thread is unspecified.
RETURN VALUE
If the call succeeds, pthread_detach ()
shall return 0; otherwise, an error number shall be returned to indicate the
error.
ERRORS
The pthread_detach () function shall fail
if:
- [EINVAL]
- The implementation has detected that the value specified by thread does not refer to a joinable thread.
- [ESRCH]
- No thread could be found corresponding to that specified by the given thread ID.
The pthread_detach () function shall not
return an error code of [EINTR].
EXAMPLES
None.
APPLICATION USAGE
None.
RATIONALE
The pthread_join(3) or
pthread_detach () functions should eventually be
called for every thread that is created so that storage associated with the
thread may be reclaimed.
It has been suggested that a "detach" function is not necessary; the detachstate thread creation attribute is sufficient, since a thread need never be dynamically detached. However, need arises in at least two cases:
- In a cancelation handler for a pthread_join(3) it is
nearly essential to have a
pthread_detach() function in order to detach the thread on which pthread_join(3) was waiting. Without it, it would be necessary to have the handler do another pthread_join(3) to attempt to detach the thread, which would both delay the cancelation processing for an unbounded period and introduce a new call to pthread_join(3), which might itself need a cancelation handler. A dynamic detach is nearly essential in this case. - In order to detach the "initial thread" (as may be desirable in processes that set up server threads).
FUTURE DIRECTIONS
None.
SEE ALSO
pthread_join(3) , the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <pthread.h>
CHANGE HISTORY
First released in Issue 5. Included for alignment with the POSIX Threads Extension.
Issue 6
The pthread_detach () function is marked
as part of the Threads option.
End of informative text. footer end