static inline void read_lock(rwlock_t *rw)
{
- int priorvalue=atomic_fetch_sub_explicit(&rw->lock, 1, memory_order_acquire);
- while (priorvalue<=0) {
+ int priorvalue = atomic_fetch_sub_explicit(&rw->lock, 1, memory_order_acquire);
+ while (priorvalue <= 0) {
atomic_fetch_add_explicit(&rw->lock, 1, memory_order_relaxed);
do {
- priorvalue=atomic_load_explicit(&rw->lock, memory_order_relaxed);
- } while(priorvalue<=0);
- priorvalue=atomic_fetch_sub_explicit(&rw->lock, 1, memory_order_acquire);
+ priorvalue = atomic_load_explicit(&rw->lock, memory_order_relaxed);
+ } while (priorvalue <= 0);
+ priorvalue = atomic_fetch_sub_explicit(&rw->lock, 1, memory_order_acquire);
}
}
static inline void write_lock(rwlock_t *rw)
{
- int priorvalue=atomic_fetch_sub_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_acquire);
- while (priorvalue!=RW_LOCK_BIAS) {
+ int priorvalue = atomic_fetch_sub_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_acquire);
+ while (priorvalue != RW_LOCK_BIAS) {
atomic_fetch_add_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_relaxed);
do {
- priorvalue=atomic_load_explicit(&rw->lock, memory_order_relaxed);
- } while(priorvalue!=RW_LOCK_BIAS);
- priorvalue=atomic_fetch_sub_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_acquire);
+ priorvalue = atomic_load_explicit(&rw->lock, memory_order_relaxed);
+ } while (priorvalue != RW_LOCK_BIAS);
+ priorvalue = atomic_fetch_sub_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_acquire);
}
}
static inline int read_trylock(rwlock_t *rw)
{
- int priorvalue=atomic_fetch_sub_explicit(&rw->lock, 1, memory_order_acquire);
- if (priorvalue>0)
+ int priorvalue = atomic_fetch_sub_explicit(&rw->lock, 1, memory_order_acquire);
+ if (priorvalue > 0)
return 1;
atomic_fetch_add_explicit(&rw->lock, 1, memory_order_relaxed);
static inline int write_trylock(rwlock_t *rw)
{
- int priorvalue=atomic_fetch_sub_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_acquire);
- if (priorvalue==RW_LOCK_BIAS)
+ int priorvalue = atomic_fetch_sub_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_acquire);
+ if (priorvalue == RW_LOCK_BIAS)
return 1;
atomic_fetch_add_explicit(&rw->lock, RW_LOCK_BIAS, memory_order_relaxed);
static void a(void *obj)
{
int i;
- for(i=0;i<2;i++) {
- if ((i%2)==0) {
+ for(i = 0; i < 2; i++) {
+ if ((i % 2) == 0) {
read_lock(&mylock);
load_32(&shareddata);
read_unlock(&mylock);