:man| Alphabetical   Categories   About us 
 
PTHREAD_BARRIER (3) | C library functions | Unix Manual Pages | :man

NAME

pthread_barrier_destroy, pthread_barrier_init, pthread_barrier_wait - "destroy, initialize or wait on a barrier object"

CONTENTS

Library
Synopsis
Description
Implementation Notes
Return Values
Errors
See Also
History

LIBRARY


.Lb libpthread
.Lb libthr

SYNOPSIS


.In pthread.h int pthread_barrier_destroy "pthread_barrier_t *barrier" int pthread_barrier_init "pthread_barrier_t *barrier" "const pthread_barrierattr_t *attr" "int count" int pthread_barrier_wait "pthread_barrier_t *barrier"

DESCRIPTION

The pthread_barrier_init function will initialize barrier with attributes specified in attr, or if it is NULL, with default attributes. The number of threads that must call pthread_barrier_wait before any of the waiting threads can be released is specified by count. The pthread_barrier_destroy function will destroy barrier and release any resources that may have been allocated on its behalf.

The pthread_barrier_wait function will synchronize calling threads at barrier. The threads will be blocked from making further progress until a sufficient number of threads calls this function. The number of threads that must call it before any of them will be released is determined by the count argument to pthread_barrier_init. Once the threads have been released the barrier will be reset.

IMPLEMENTATION NOTES

In both
.Lb libpthread and
.Lb libthr the PTHREAD_BARRIER_SERIAL_THREAD return value will always be returned by the last thread to reach the barrier.

RETURN VALUES

If successful, both pthread_barrier_destroy and pthread_barrier_init will return zero. Otherwise, an error number will be returned to indicate the error. If the call to pthread_barrier_wait is successful, all but one of the threads will return zero. That one thread will return PTHREAD_BARRIER_SERIAL_THREAD. Otherwise, an error number will be returned to indicate the error.

None of these functions will return EINTR.

ERRORS

The pthread_barrier_destroy function will fail if:
[EBUSY]
An attempt was made to destroy barrier while it was in use.

The pthread_barrier_destroy and pthread_barrier_wait functions may fail if:

[EINVAL]
The value specified by barrier is invalid.

The pthread_barrier_init function will fail if:

[EAGAIN]
The system lacks resources, other than memory, to initialize barrier.
[EINVAL]
The count argument is less than 1.
[ENOMEM]
Insufficient memory to initialize barrier.

SEE ALSO

pthread_barrierattr(3)

HISTORY

 
Created by Blin Media, 2008-2013