| NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | NOTES | EXAMPLE | SEE ALSO | COLOPHON | The Linux Programming Interface |
PTHREAD_DETACH(3) Linux Programmer's Manual PTHREAD_DETACH(3)
pthread_detach - detach a thread
#include <pthread.h>
int pthread_detach(pthread_t thread);
Compile and link with -pthread.
The pthread_detach() function marks the thread identified by thread as
detached. When a detached thread terminates, its resources are
automatically released back to the system without the need for another
thread to join with the terminated thread.
Attempting to detach an already detached thread results in unspecified
behavior.
On success, pthread_detach() returns 0; on error, it returns an error
number.
EINVAL thread is not a joinable thread.
ESRCH No thread with the ID thread could be found.
POSIX.1-2001.
Once a thread has been detached, it can't be joined with pthread_join(3) or
be made joinable again.
A new thread can be created in a detached state using
pthread_attr_setdetachstate(3) to set the detached attribute of the attr
argument of pthread_create(3).
The detached attribute merely determines the behavior of the system when
the thread terminates; it does not prevent the thread from being terminated
if the process terminates using exit(3) (or equivalently, if the main
thread returns).
Either pthread_join(3) or pthread_detach() should be called for each thread
that an application creates, so that system resources for the thread can be
released. (But note that the resources of all threads are freed when the
process terminates.)
The following statement detaches the calling thread:
pthread_detach(pthread_self());
pthread_attr_setdetachstate(3), pthread_cancel(3), pthread_create(3),
pthread_exit(3), pthread_join(3), pthreads(7)
This page is part of release 3.41 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can be
found at http://www.kernel.org/doc/man-pages/.
Linux 2008-11-27 PTHREAD_DETACH(3)
HTML rendering created 2012-05-11 by Michael Kerrisk, author of The Linux Programming Interface, maintainer of the Linux man-pages project