diff options
author | Richard Braun <rbraun@sceen.net> | 2018-04-18 21:45:12 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2018-04-19 01:45:43 +0200 |
commit | 8790d75d93c7e06b7b93c1078260aaf1e4ea25ca (patch) | |
tree | 478eb3eb2607f1312d7b4e64cab23f3bcb0268ee /kern/mutex | |
parent | 3640f94ee392b19de48360d2d026a7f581447049 (diff) |
kern/atomic: remove shortcuts
These shortcuts just don't bring enough value.
Diffstat (limited to 'kern/mutex')
-rw-r--r-- | kern/mutex/mutex_adaptive.c | 8 | ||||
-rw-r--r-- | kern/mutex/mutex_adaptive_i.h | 6 | ||||
-rw-r--r-- | kern/mutex/mutex_plain.c | 2 | ||||
-rw-r--r-- | kern/mutex/mutex_plain_i.h | 5 |
4 files changed, 12 insertions, 9 deletions
diff --git a/kern/mutex/mutex_adaptive.c b/kern/mutex/mutex_adaptive.c index b2af4561..d17ad9d4 100644 --- a/kern/mutex/mutex_adaptive.c +++ b/kern/mutex/mutex_adaptive.c @@ -135,8 +135,8 @@ mutex_adaptive_lock_slow_common(struct mutex *mutex, bool timed, uint64_t ticks) mutex_adaptive_set_contended(mutex); do { - owner = atomic_cas_acquire(&mutex->owner, MUTEX_ADAPTIVE_CONTENDED, - self | MUTEX_ADAPTIVE_CONTENDED); + owner = atomic_cas(&mutex->owner, MUTEX_ADAPTIVE_CONTENDED, + self | MUTEX_ADAPTIVE_CONTENDED, ATOMIC_ACQUIRE); assert(owner & MUTEX_ADAPTIVE_CONTENDED); if (mutex_adaptive_get_thread(owner) == NULL) { @@ -254,8 +254,8 @@ mutex_adaptive_unlock_slow(struct mutex *mutex) self = (uintptr_t)thread_self() | MUTEX_ADAPTIVE_CONTENDED; for (;;) { - owner = atomic_cas_release(&mutex->owner, self, - MUTEX_ADAPTIVE_CONTENDED); + owner = atomic_cas(&mutex->owner, self, + MUTEX_ADAPTIVE_CONTENDED, ATOMIC_RELEASE); if (owner == self) { break; diff --git a/kern/mutex/mutex_adaptive_i.h b/kern/mutex/mutex_adaptive_i.h index 05e97640..b123251f 100644 --- a/kern/mutex/mutex_adaptive_i.h +++ b/kern/mutex/mutex_adaptive_i.h @@ -55,7 +55,8 @@ mutex_adaptive_lock_fast(struct mutex *mutex) { uintptr_t owner; - owner = atomic_cas_acquire(&mutex->owner, 0, (uintptr_t)thread_self()); + owner = atomic_cas(&mutex->owner, 0, + (uintptr_t)thread_self(), ATOMIC_ACQUIRE); if (unlikely(owner != 0)) { return EBUSY; @@ -69,7 +70,8 @@ mutex_adaptive_unlock_fast(struct mutex *mutex) { uintptr_t owner; - owner = atomic_cas_release(&mutex->owner, (uintptr_t)thread_self(), 0); + owner = atomic_cas(&mutex->owner, (uintptr_t)thread_self(), + 0, ATOMIC_RELEASE); if (unlikely(owner & MUTEX_ADAPTIVE_CONTENDED)) { return EBUSY; diff --git a/kern/mutex/mutex_plain.c b/kern/mutex/mutex_plain.c index f12f13fd..55e7a251 100644 --- a/kern/mutex/mutex_plain.c +++ b/kern/mutex/mutex_plain.c @@ -84,7 +84,7 @@ mutex_plain_lock_slow_common(struct mutex *mutex, bool timed, uint64_t ticks) sleepq = sleepq_lend(mutex, false, &flags); for (;;) { - state = atomic_swap_release(&mutex->state, MUTEX_CONTENDED); + state = atomic_swap(&mutex->state, MUTEX_CONTENDED, ATOMIC_RELEASE); if (state == MUTEX_UNLOCKED) { break; diff --git a/kern/mutex/mutex_plain_i.h b/kern/mutex/mutex_plain_i.h index d28fd92b..a7928295 100644 --- a/kern/mutex/mutex_plain_i.h +++ b/kern/mutex/mutex_plain_i.h @@ -49,7 +49,8 @@ mutex_plain_lock_fast(struct mutex *mutex) { unsigned int state; - state = atomic_cas_acquire(&mutex->state, MUTEX_UNLOCKED, MUTEX_LOCKED); + state = atomic_cas(&mutex->state, MUTEX_UNLOCKED, + MUTEX_LOCKED, ATOMIC_ACQUIRE); if (unlikely(state != MUTEX_UNLOCKED)) { return EBUSY; @@ -63,7 +64,7 @@ mutex_plain_unlock_fast(struct mutex *mutex) { unsigned int state; - state = atomic_swap_release(&mutex->state, MUTEX_UNLOCKED); + state = atomic_swap(&mutex->state, MUTEX_UNLOCKED, ATOMIC_RELEASE); if (unlikely(state == MUTEX_CONTENDED)) { return EBUSY; |