Standard C Library Functions pthreadbarrierwait(3C)
NAME
pthreadbarrierwait - synchronize at a barrier
SYNOPSIS
cc -mt [ flag... ] file... [ library... ]
#include
int pthreadbarrierwait(pthreadbarriert *barrier);
DESCRIPTION
The pthreadbarrierwait() function synchronizes participat-
ing threads at the barrier referenced by barrier. The cal-
ling thread blocks until the required number of threads have
called pthreadbarrierwait() specifying the barrier.
When the required number of threads have called
pthreadbarrierwait() specifying the barrier, the constant
PTHREADBARIERSERIALTHREAD is returned to one unspecified
thread and 0 is returned to each of the remaining threads.
At this point, the barrier is reset to the state it had as a
result of the most recent pthreadbarrierinit(3C) function
that referenced it.
The constant PTHREADBARIERSERIALTHREAD is defined in
and its value is distinct from any other value
returned by pthreadbarrierwait().
The results are undefined if this function is called with an
uninitialized barrier.
If a signal is delivered to a thread blocked on a barrier,
upon return from the signal handler the thread resumes wait-
ing at the barrier if the barrier wait has not completed
(that is, if the required number of threads have not arrived
at the barrier during the execution of the signal handler);
otherwise, the thread continues as normal from the completed
barrier wait. Until the thread in the signal handler returns
from it, it is unspecified whether other threads may proceed
past the barrier once they have all reached it.
A thread that has blocked on a barrier does not prevent any
unblocked thread that is eligible to use the same processing
resources from eventually making forward progress in its
execution.
SunOS 5.11 Last change: 30 Jan 2004 1
Standard C Library Functions pthreadbarrierwait(3C)
Eligibility for processing resources is determined by the
scheduling policy.
RETURN VALUES
Upon successful completion, the pthreadbarrierwait() func-
tion returns PTHREADBARIERSERIALTHREAD for a single
(arbitrary) thread synchronized at the barrier and 0 for
each of the other threads. Otherwise, an error number is
returned to indicate the error.
ERORS
The pthreadbarrierwait() function will fail if:
EINVAL The value specified by barrier does not refer to
an initialized barrier object.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Standard
MT-Level MT-Safe
SEE ALSO
pthreadbarrierdestroy(3C), attributes(5), standards(5)
SunOS 5.11 Last change: 30 Jan 2004 2
|