Name

pthread_detach
- detach a thread

Library

libc_r.lib libpthread.lib libthr.lib

Synopsis

  #include <pthread.h>
  int pthread_detach (pthread_t thrHandle);

Return values

If successful, the pthread_detach function will return zero. Otherwise an error number will be returned to indicate the error.

Detailed description

The pthread_detach function is used to indicate to the implementation that storage for the thread thrHandle can be reclaimed when the thread terminates. If thrHandle has not terminated, pthread_detach will not cause it to terminate. The effect of multiple pthread_detach calls on the same target thread is unspecified.

Examples

void *a_thread_func_1_1(void*)
{
 sleep(10);
 return NULL;
}
int main_1_1()
{
 pthread_attr_t new_attr;
 pthread_t new_th;
 int ret;
 /* Initialize attribute */
 if(pthread_attr_init(&new_attr) != 0)
 {
  perror("Cannot initialize attribute object\n");
  return -1;
 }
 /* Set the attribute object to be joinable */
 if(pthread_attr_setdetachstate(&new_attr, PTHREAD_CREATE_JOINABLE) != 0)
 {
  perror("Error in pthread_attr_setdetachstate()\n");
  return -1;
 }
 /* Create the thread */
 if(pthread_create(&new_th, &new_attr, a_thread_func_1_1, NULL) != 0)
 {
  perror("Error creating thread\n");
  return -1;
 }
 /* Detach the thread. */
 if(pthread_detach(new_th) != 0)
 {
  printf("Error detaching thread\n");
  return -1;
 }

         

Errors

The pthread_detach function will fail if:
[EINVAL]
  The implementation has detected that the value specified by thrHandle does not refer to a joinable thread. or if someother thread has already joined
[ESRCH]
  No thread could be found corresponding to that specified by the given thread ID, thrHandle.

See also

pthread_join


Feedback

For additional information or queries on this page send feedback

© 2005-2007 Nokia

Top