Provided by: manpages-posix-dev_2013a-2_all bug

PROLOG

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

NAME

       pthread_condattr_getpshared,  pthread_condattr_setpshared — get and set the process-shared
       condition variable attributes

SYNOPSIS

       #include <pthread.h>

       int pthread_condattr_getpshared(const pthread_condattr_t *restrict attr,
           int *restrict pshared);
       int pthread_condattr_setpshared(pthread_condattr_t *attr,
           int pshared);

DESCRIPTION

       The pthread_condattr_getpshared() function shall obtain the value  of  the  process-shared
       attribute from the attributes object referenced by attr.

       The  pthread_condattr_setpshared()  function  shall set the process-shared attribute in an
       initialized attributes object referenced by attr.

       The process-shared attribute is  set  to  PTHREAD_PROCESS_SHARED  to  permit  a  condition
       variable  to  be  operated  upon  by  any  thread  that has access to the memory where the
       condition variable is allocated, even if the condition variable  is  allocated  in  memory
       that   is   shared   by   multiple   processes.   If   the   process-shared  attribute  is
       PTHREAD_PROCESS_PRIVATE, the condition variable shall only be  operated  upon  by  threads
       created  within the same process as the thread that initialized the condition variable; if
       threads of differing processes attempt to  operate  on  such  a  condition  variable,  the
       behavior is undefined. The default value of the attribute is PTHREAD_PROCESS_PRIVATE.

       The   behavior   is   undefined   if   the   value  specified  by  the  attr  argument  to
       pthread_condattr_getpshared()  or  pthread_condattr_setpshared()  does  not  refer  to  an
       initialized condition variable attributes object.

RETURN VALUE

       If successful, the pthread_condattr_setpshared() function shall return zero; otherwise, an
       error number shall be returned to indicate the error.

       If successful, the pthread_condattr_getpshared() function shall return zero and store  the
       value  of  the  process-shared attribute of attr into the object referenced by the pshared
       parameter. Otherwise, an error number shall be returned to indicate the error.

ERRORS

       The pthread_condattr_setpshared() function may fail if:

       EINVAL The new value specified for the attribute is outside the range of legal values  for
              that attribute.

       These functions shall not return an error code of [EINTR].

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

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

FUTURE DIRECTIONS

       None.

SEE ALSO

       pthread_create(), pthread_cond_destroy(), pthread_condattr_destroy(),
       pthread_mutex_destroy()

       The Base Definitions volume of POSIX.1‐2008, <pthread.h>

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2013 Edition, Standard for Information Technology  --  Portable  Operating  System
       Interface  (POSIX),  The Open Group Base Specifications Issue 7, Copyright (C) 2013 by the
       Institute of Electrical and Electronics Engineers, Inc  and  The  Open  Group.   (This  is
       POSIX.1-2008  with  the  2013  Technical  Corrigendum  1  applied.)  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.unix.org/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 .