barrier_init(SYNCH)
barrier_init --
initialize a blocking barrier
Synopsis
cc [options] -Kthread file
#include <synch.h>
int barrier_init(barrier_t *barrier, int count, int type, void *arg);
Description
barrier_init initializes the
blocking
barrier
pointed to by barrier
to be of type type and to synchronize count threads.
Once initialized, the barrier can be used any number of times
to synchronize execution of count threads.
Threads waiting at a
blocking
barrier will block, or ``sleep'',
until all count threads arrive at the barrier.
Parameters
barrier-
pointer to barrier to be initialized
count-
number of threads to use the barrier for synchronization
type-
USYNC_THREAD or USYNC_PROCESS
arg-
NULL (reserved for future use)
barrier parameter
barrier points to the
blocking
barrier to be initialized.
count parameter
count is the number of threads that will be synchronized by the barrier.
That is, barrier_wait will block any calling threads until
count threads have reached the barrier.
type parameter
type can be set to one of the following values:
USYNC_THREAD-
initialize the barrier for threads within the current process
USYNC_PROCESS-
initialize the barrier for threads across processes
arg parameter
arg should be set to NULL.
It is not currently used, but is reserved for future use.
Return values
barrier_init returns zero for success
and an error number for failure.
Errors
If one of the following conditions is detected,
barrier_init returns the corresponding value:
EINVAL-
invalid argument specified
Warnings
A barrier should not be re-initialized
while threads are waiting at the barrier.
References
Intro(SYNCH),
barrier(SYNCH),
barrier_destroy(SYNCH),
barrier_wait(SYNCH)
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005