PTHREAD_ATTR_GETDETACHSTATE(P3O)SIX Programmer's ManPuTaHlREAD_ATTR_GETDETACHSTATE(3)



PROLOG
       This manual page is part of the POSIX Programmer's Manual.  The OS
       implementation of this interface may differ (consult the corresponding
       OS manual page for details of OS behavior), or the interface may not be
       implemented on OS.

NAME
       pthread_attr_getdetachstate, pthread_attr_setdetachstate -- get and set
       the detachstate attribute

SYNOPSIS
       #include <pthread.h>

       int pthread_attr_getdetachstate(const pthread_attr_t *attr,
           int *detachstate);
       int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);

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
       the attr 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.

       The behavior is undefined if the value specified by the attr argument
       to pthread__attr__getdetachstate() or pthread__attr__setdetachstate() does
       not refer to an initialized thread attributes object.

RETURN VALUE
       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 shall not return an error code of [EINTR].

       The following sections are informative.

EXAMPLES
   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
                */
                ...
           }

APPLICATION USAGE
       None.

RATIONALE
       If an implementation detects that the value specified by the attr
       argument to pthread__attr__getdetachstate() or
       pthread__attr__setdetachstate() does not refer to an initialized thread
       attributes object, it is recommended that the function should fail and
       report an [EINVAL] error.

FUTURE DIRECTIONS
       None.

SEE ALSO
       pthread__attr__destroy(), pthread__attr__getstacksize(), pthread__create()

       The Base Definitions volume of POSIX.1-2017, <pthread.h>

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1-2017, Standard for Information Technology --
       Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the
       Institute of Electrical and Electronics Engineers, Inc and The Open
       Group.  In the event of any discrepancy between this version and the
       original IEEE and The Open Group Standard, the original IEEE and The
       Open Group Standard is the referee document. The original Standard can
       be obtained online at http://www.opengroup.org/unix/online.html .

       Any typographical or formatting errors that appear in this page are
       most likely to have been introduced during the conversion of the source
       files to man page format. To report such errors, see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .



IEEE/The Open Group                  2017       PTHREAD_ATTR_GETDETACHSTATE(3)
