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:
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:
None of these functions will return EINTR. ERRORS The pthread_barrier_destroy function will fail if:
The pthread_barrier_destroy and pthread_barrier_wait functions may fail if:
The pthread_barrier_init function will fail if: