Provided by: manpages-posix-dev_2017a-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. See Section 2.9.9, Synchronization Object Copies and
       Alternative Mappings for further requirements. 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‐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 .