pthread_barrier_destroy(3p) — Linux manual page

PROLOG | NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLES | APPLICATION USAGE | RATIONALE | FUTURE DIRECTIONS | SEE ALSO | COPYRIGHT

PTHREAD..._DESTROY(3P)  POSIX Programmer's Manual PTHREAD..._DESTROY(3P)

PROLOG         top

       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         top

       pthread_barrier_destroy, pthread_barrier_init — destroy and
       initialize a barrier object

SYNOPSIS         top

       #include <pthread.h>

       int pthread_barrier_destroy(pthread_barrier_t *barrier);
       int pthread_barrier_init(pthread_barrier_t *restrict barrier,
           const pthread_barrierattr_t *restrict attr, unsigned count);

DESCRIPTION         top

       The pthread_barrier_destroy() function shall destroy the barrier
       referenced by barrier and release any resources used by the
       barrier. The effect of subsequent use of the barrier is undefined
       until the barrier is reinitialized by another call to
       pthread_barrier_init().  An implementation may use this function
       to set barrier to an invalid value. The results are undefined if
       pthread_barrier_destroy() is called when any thread is blocked on
       the barrier, or if this function is called with an uninitialized
       barrier.

       The pthread_barrier_init() function shall allocate any resources
       required to use the barrier referenced by barrier and shall
       initialize the barrier with attributes referenced by attr.  If
       attr is NULL, the default barrier attributes shall be used; the
       effect is the same as passing the address of a default barrier
       attributes object. The results are undefined if
       pthread_barrier_init() is called when any thread is blocked on
       the barrier (that is, has not returned from the
       pthread_barrier_wait() call). The results are undefined if a
       barrier is used without first being initialized. The results are
       undefined if pthread_barrier_init() is called specifying an
       already initialized barrier.

       The count argument specifies the number of threads that must call
       pthread_barrier_wait() before any of them successfully return
       from the call. The value specified by count must be greater than
       zero.

       If the pthread_barrier_init() function fails, the barrier shall
       not be initialized and the contents of barrier are undefined.

       See Section 2.9.9, Synchronization Object Copies and Alternative
       Mappings for further requirements.

RETURN VALUE         top

       Upon successful completion, these functions shall return zero;
       otherwise, an error number shall be returned to indicate the
       error.

ERRORS         top

       The pthread_barrier_init() function shall fail if:

       EAGAIN The system lacks the necessary resources to initialize
              another barrier.

       EINVAL The value specified by count is equal to zero.

       ENOMEM Insufficient memory exists to initialize the barrier.

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

       The following sections are informative.

EXAMPLES         top

       None.

APPLICATION USAGE         top

       None.

RATIONALE         top

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

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

       If an implementation detects that the value specified by the
       barrier argument to pthread_barrier_destroy() or
       pthread_barrier_init() refers to a barrier that is in use (for
       example, in a pthread_barrier_wait() call) by another thread, or
       detects that the value specified by the barrier argument to
       pthread_barrier_init() refers to an already initialized barrier
       object, it is recommended that the function should fail and
       report an [EBUSY] error.

FUTURE DIRECTIONS         top

       None.

SEE ALSO         top

       pthread_barrier_wait(3p)

       The Base Definitions volume of POSIX.1‐2017, pthread.h(0p)

COPYRIGHT         top

       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..._DESTROY(3P)

Pages that refer to this page: pthread.h(0p)pthread_barrierattr_getpshared(3p)pthread_barrier_wait(3p)