pthread_detach - put a running thread in the detached state
#include <pthread.h>
int pthread_detach(pthread_t th);
pthread_detach puts the thread th in the detached state. This guarantees that the resources consumed by th will be freed immediately when th terminates. However, this prevents other threads from synchronizing on the termination of th using pthread_join. If, when pthread_detach is called, th has already terminated, all of th's remaining resources will be freed.
A thread can be created initially in the detached state, using the detachstate attribute to pthread_create(3) . In contrast, pthread_detach applies to threads created in the joinable state, and which need to be put in the detached state later.
After pthread_detach completes, subsequent attempts to perform pthread_join on th will fail. If another thread is already joining the thread th at the time pthread_detach is called, th will be detached and pthread_join will eventually return when th terminates but may not return with th's correct return code.
On success, 0 is returned. On error, a non-zero error code is returned.
Xavier Leroy <[email protected]>
Modified by Ross Johnson for use with Pthreads-w32.
pthread_create(3) , pthread_join(3) , pthread_attr_setdetachstate(3)