| 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)
- memory access synchronization barrier operations
#include <atomic.h>voidmembar_enter(void);
voidmembar_exit(void);
voidmembar_producer(void);
voidmembar_consumer(void);
Themembar_enter() function is a generic memory barrier used during lock entry.It is placed after the memory operation that acquires the lock toguarantee that the lock protects its data. No stores from after thememory barrier will reach visibility and no loads from after the barrier willbe resolved before the lock acquisition reaches global visibility.
Themembar_exit() function is a generic memory barrier used during lock exit.It is placed before the memory operationthat releases the lock to guarantee that the lock protects its data.All loads and stores issued before the barrier will be resolved before the subsequent lock update reaches visibility.
Themembar_enter() andmembar_exit() functions are used together to allow regions ofcode to be in relaxed store order and then ensure that theload or store order is maintained at a higher level. They areuseful in the implementation of mutex exclusion locks.
Themembar_producer() function arranges for all stores issued before this point inthe code to reach global visibility before any stores that follow. Thisis useful in producer modules that update a data item, then seta flag that it is available. The memory barrier guarantees that the availableflag is not visible earlier than the updated data, thereby imposing storeordering.
Themembar_consumer() function arranges for all loads issued before this point inthe code to be completed before any subsequent loads. This is usefulin consumer modules that check if data is available and read thedata. The memory barrier guarantees that the data is not sampled until afterthe available flag has been seen, thereby imposing load ordering.
No values are returned.
No errors are defined.
Seeattributes(5) for descriptions of the following attributes:
|
atomic_add(3C),atomic_and(3C),atomic_bits(3C),atomic_cas(3C),atomic_dec(3C),atomic_inc(3C),atomic_ops(3C),atomic_or(3C),atomic_swap(3C),attributes(5),atomic_ops(9F)
Atomic instructions (seeatomic_ops(3C)) ensure global visibility of atomically-modified variables on completion.In a relaxed store order system, this does not guarantee that the visibilityof other variables will be synchronized with the completion of the atomicinstruction. If such synchronization is required, memory barrier instructions must be used.
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices | ![]() ![]() |