barrier_init(3synch)


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(3synch), barrier(3synch), barrier_destroy(3synch), barrier_wait(3synch)
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004