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_destroy,  pthread_condattr_init  —  destroy  and initialize the condition
       variable attributes object

SYNOPSIS

       #include <pthread.h>

       int pthread_condattr_destroy(pthread_condattr_t *attr);
       int pthread_condattr_init(pthread_condattr_t *attr);

DESCRIPTION

       The pthread_condattr_destroy() function shall  destroy  a  condition  variable  attributes
       object;  the  object  becomes,  in  effect,  uninitialized.  An  implementation  may cause
       pthread_condattr_destroy() to set the object referenced by attr to  an  invalid  value.  A
       destroyed  attr  attributes object can be reinitialized using pthread_condattr_init(); the
       results of otherwise referencing the object after it has been destroyed are undefined.

       The pthread_condattr_init() function shall  initialize  a  condition  variable  attributes
       object   attr   with  the  default  value  for  all  of  the  attributes  defined  by  the
       implementation.

       Results  are  undefined  if  pthread_condattr_init()  is  called  specifying  an   already
       initialized attr attributes object.

       After  a  condition  variable  attributes  object  has been used to initialize one or more
       condition variables, any function affecting the attributes object (including  destruction)
       shall not affect any previously initialized condition variables.

       This  volume of POSIX.1‐2008 requires two attributes, the clock attribute and the process-
       shared attribute.

       Additional attributes, their default values, and the names of the associated functions  to
       get and set those attribute values are implementation-defined.

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

RETURN VALUE

       If  successful, the pthread_condattr_destroy() and pthread_condattr_init() functions shall
       return zero; otherwise, an error number shall be returned to indicate the error.

ERRORS

       The pthread_condattr_init() function shall fail if:

       ENOMEM Insufficient memory exists to initialize the condition variable attributes object.

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

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       None.

RATIONALE

       A process-shared attribute has been defined for condition variables for the same reason it
       has been defined for mutexes.

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

       See also pthread_attr_destroy() and pthread_mutex_destroy().

FUTURE DIRECTIONS

       None.

SEE ALSO

       pthread_attr_destroy(), pthread_cond_destroy(), pthread_condattr_getpshared(),
       pthread_create(), 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 .