VMS Help  —  POSIX Threads, PTHREAD routines, pthread_attr_setdetachstate
    Changes the detachstate attribute in the specified thread
    attributes object.

1  –  C Binding

    #include <pthread.h>

    int
    pthread_attr_setdetachstate (
                pthread_attr_t   *attr,
                int   detachstate);

2  –  Arguments

 attr

    Thread attributes object to be modified.

 detachstate

    New value for the detachstate attribute. Valid values are as
    follows:

    PTHREAD_CREATE_       This is the default value. Threads are
    JOINABLE              created in "undetached" state.
    PTHREAD_CREATE_       The created thread is detached immediately,
    DETACHED              before it begins running.

3  –  Description

    This routine changes the detachstate attribute in the thread
    attributes object specified by the attr argument. The detachstate
    attribute specifies whether the thread created using the
    specified thread attributes object is created in a detached state
    or not. A value of PTHREAD_CREATE_JOINABLE indicates the thread
    is not detached, and a value of PTHREAD_CREATE_DETACHED indicates
    the thread is detached. PTHREAD_CREATE_JOINABLE is the default
    value.

    Your program cannot use the thread handle (the value of type
    pthread_t returned by the pthread_create() routine) of a detached
    thread because the thread might terminate asynchronously, and a
    detached thread ID is not valid after termination. In particular,
    it is an error to attempt to detach or join with a detached
    thread.

    When a thread that has not been detached completes execution,
    the Threads Library retains the state of that thread to allow
    another thread to join with it. If the thread is detached
    before it completes execution, the Threads Library is free to
    immediately reclaim the thread's storage and resources. Failing
    to detach threads that have completed execution can result in
    wasting resources, so threads should be detached as soon as
    the program is done with them. If there is no need to use the
    thread's handle after creation, such as to join with it, create
    the thread initially detached.

4  –  Return Values

    If an error condition occurs, this routine returns an integer
    value indicating the type of error. Possible return values are as
    follows:

    Return      Description

    0           Successful completion.
    [EINVAL]    The value specified by the attr argument is not a
                valid threads attribute object or the detachstate
                argument is invalid.

5  –  Associated Routines

       pthread_attr_init()
       pthread_attr_getdetachstate()
       pthread_create()
       pthread_join()
Close Help