Updated: April 19, 2023 |
Initialize a barrier object
#include <pthread.h> int pthread_barrier_init( pthread_barrier_t * barrier, const pthread_barrierattr_t * attr unsigned int count );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The pthread_barrier_init() function allocates any resources required to use the barrier referenced by barrier and initializes the barrier with attributes referenced by attr. If attr is NULL, the default barrier attributes are used. The effect is the same as passing the address of a default barrier attributes object. Once it's initialized, you can use the barrier any number of times without reinitializing it.
If pthread_barrier_init() fails, the barrier isn't initialized.
In cases where the default barrier attributes are appropriate, you can use PTHREAD_BARRIER_INITIALIZER() macro to initialize barriers that are statically allocated. The effect is equivalent to dynamic initialization by a call to pthread_barrier_init() with parameter attr specified as NULL, except that no error checks are performed.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |