| Skip Navigation Links | |
| Exit Print View | |
![]() | man pages section 3: Basic Library Functions Oracle Solaris 11 Information Library |
enable_extended_FILE_stdio(3C)
posix_spawnattr_getschedparam(3C)
posix_spawnattr_getschedpolicy(3C)
posix_spawnattr_getsigdefault(3C)
posix_spawnattr_getsigignore_np(3C)
posix_spawnattr_getsigmask(3C)
posix_spawnattr_setschedparam(3C)
posix_spawnattr_setschedpolicy(3C)
posix_spawnattr_setsigdefault(3C)
posix_spawnattr_setsigignore_np(3C)
posix_spawnattr_setsigmask(3C)
posix_spawn_file_actions_addclose(3C)
posix_spawn_file_actions_addclosefrom_np(3C)
posix_spawn_file_actions_adddup2(3C)
posix_spawn_file_actions_addopen(3C)
posix_spawn_file_actions_destroy(3C)
posix_spawn_file_actions_init(3C)
pthread_attr_getdetachstate(3C)
pthread_attr_getinheritsched(3C)
pthread_attr_getschedparam(3C)
pthread_attr_getschedpolicy(3C)
pthread_attr_setdetachstate(3C)
pthread_attr_setinheritsched(3C)
pthread_attr_setschedparam(3C)
pthread_attr_setschedpolicy(3C)
pthread_barrierattr_destroy(3C)
pthread_barrierattr_getpshared(3C)
pthread_barrierattr_setpshared(3C)
pthread_condattr_getpshared(3C)
pthread_condattr_setpshared(3C)
pthread_cond_reltimedwait_np(3C)
pthread_key_create_once_np(3C)
pthread_mutexattr_getprioceiling(3C)
pthread_mutexattr_getprotocol(3C)
pthread_mutexattr_getpshared(3C)
pthread_mutexattr_getrobust(3C)
pthread_mutexattr_setprioceiling(3C)
pthread_mutexattr_setprotocol(3C)
pthread_mutexattr_setpshared(3C)
pthread_mutexattr_setrobust(3C)
pthread_mutex_getprioceiling(3C)
pthread_mutex_reltimedlock_np(3C)
pthread_mutex_setprioceiling(3C)
pthread_rwlockattr_destroy(3C)
pthread_rwlockattr_getpshared(3C)
pthread_rwlockattr_setpshared(3C)
pthread_rwlock_reltimedrdlock_np(3C)
pthread_rwlock_reltimedwrlock_np(3C)
pthread_rwlock_timedrdlock(3C)
pthread_rwlock_timedwrlock(3C)
rctlblk_get_enforced_value(3C)
- synchronize at a barrier
cc-mt [flag... ]file... [library... ]#include <pthread.h>intpthread_barrier_wait(pthread_barrier_t *barrier);
Thepthread_barrier_wait() function synchronizes participating threads at the barrier referenced bybarrier.The calling thread blocks until the required number of threads have calledpthread_barrier_wait() specifying the barrier.
When the required number of threads have calledpthread_barrier_wait() specifying the barrier,the constantPTHREAD_BARRIER_SERIAL_THREAD is returned to one unspecified thread and 0 isreturned to each of the remaining threads. At this point, the barrieris reset to the state it had as a result of the mostrecentpthread_barrier_init(3C) function that referenced it.
The constantPTHREAD_BARRIER_SERIAL_THREAD is defined in <pthread.h> and its value is distinctfrom any other value returned bypthread_barrier_wait().
The results are undefined if this function is called with an uninitializedbarrier.
If a signal is delivered to a thread blocked on a barrier,upon return from the signal handler the thread resumes waiting at thebarrier if the barrier wait has not completed (that is, if therequired number of threads have not arrived at the barrier during theexecution of the signal handler); otherwise, the thread continues as normal from thecompleted barrier wait. Until the thread in the signal handler returns fromit, it is unspecified whether other threads may proceed past the barrieronce they have all reached it.
A thread that has blocked on a barrier does not prevent anyunblocked thread that is eligible to use the same processing resources fromeventually making forward progress in its execution.
Eligibility for processing resources is determined by the scheduling policy.
Upon successful completion, thepthread_barrier_wait() function returnsPTHREAD_BARRIER_SERIAL_THREAD for a single (arbitrary)thread synchronized at the barrier and 0 for each of the otherthreads. Otherwise, an error number is returned to indicate the error.
Thepthread_barrier_wait() function will fail if:
The value specified bybarrier does not refer to an initialized barrier object.
Seeattributes(5) for descriptions of the following attributes:
|
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices | ![]() ![]() |