Friday, April 26, 2013

pthread_attr_getdetachstate example c c++


NAME

pthread_attr_getdetachstate, pthread_attr_setdetachstate - get and set the detachstate attribute

SYNOPSIS

[THR] [Option Start] #include <pthread.h>

int pthread_attr_getdetachstate(const pthread_attr_t *
attr,
       int *
detachstate);
int pthread_attr_setdetachstate(pthread_attr_t *
attr, int detachstate); [Option End]

DESCRIPTION

The detachstate attribute controls whether the thread is created in a detached state. If the thread is created detached, then use of the ID of the newly created thread by the pthread_detach() or pthread_join() function is an error.
The pthread_attr_getdetachstate() and pthread_attr_setdetachstate() functions, respectively, shall get and set the detachstate attribute in theattr object.
For pthread_attr_getdetachstate(), detachstate shall be set to either PTHREAD_CREATE_DETACHED or PTHREAD_CREATE_JOINABLE.
For pthread_attr_setdetachstate(), the application shall set detachstate to either PTHREAD_CREATE_DETACHED or PTHREAD_CREATE_JOINABLE.
A value of PTHREAD_CREATE_DETACHED shall cause all threads created with attr to be in the detached state, whereas using a value of PTHREAD_CREATE_JOINABLE shall cause all threads created with attr to be in the joinable state. The default value of the detachstate attribute shall be PTHREAD_CREATE_JOINABLE.

RETURN VALUE of (pthread_attr_getdetachstate, pthread_attr_setdetachstate)

Upon successful completion, pthread_attr_getdetachstate() and pthread_attr_setdetachstate() shall return a value of 0; otherwise, an error number shall be returned to indicate the error.
The pthread_attr_getdetachstate() function stores the value of the detachstate attribute in detachstate if successful.

ERRORS

The pthread_attr_setdetachstate() function shall fail if:
[EINVAL]
The value of detachstate was not valid
These functions may fail if:
[EINVAL]
The value specified by attr does not refer to an initialized thread attribute object.
These functions shall not return an error code of [EINTR].

EXAMPLES  of (pthread_attr_getdetachstate, pthread_attr_setdetachstate)

Retrieving the detachstate Attribute
This example shows how to obtain the detachstate attribute of a thread attribute object.
#include <pthread.h>


pthread_attr_t thread_attr;
int            detachstate;
int            rc;


/* code initializing thread_attr */
...


rc = pthread_attr_getdetachstate (&thread_attr, &detachstate);
if (rc!=0) {
    /* handle error */
    ...
}
else {
    /* legal values for detachstate are:
     * PTHREAD_CREATE_DETACHED or PTHREAD_CREATE_JOINABLE
     */
     ...
}

Another example of (pthread_attr_getdetachstate, pthread_attr_setdetachstate)

#include <pthread.h>

pthread_attr_t tattr;
int detachstate;
int ret;

/* get detachstate of thread */
ret = pthread_attr_getdetachstate (&tattr, &detachstate);