summaryrefslogtreecommitdiff
path: root/kern/mutex.c
diff options
context:
space:
mode:
authorAgustina Arzille <avarzille@riseup.net>2017-05-05 04:01:13 -1000
committerRichard Braun <rbraun@sceen.net>2017-05-09 21:17:58 +0200
commitbcbe8dc991a9ec63f30d50ed4cca89fd9e6b7ff7 (patch)
tree389517510b8d19082d02f36453dbf68356b548fb /kern/mutex.c
parentb5864f82b9c0d8ea2e825e7d86bd8cdeb825f870 (diff)
Replace sequential consistency with more efficient orders
Diffstat (limited to 'kern/mutex.c')
-rw-r--r--kern/mutex.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kern/mutex.c b/kern/mutex.c
index 00077f26..7899bef9 100644
--- a/kern/mutex.c
+++ b/kern/mutex.c
@@ -34,7 +34,7 @@ mutex_lock_slow(struct mutex *mutex)
sleepq = sleepq_lend(mutex, false, &flags);
for (;;) {
- state = atomic_swap_seq_cst(&mutex->state, MUTEX_CONTENDED);
+ state = atomic_swap_acquire(&mutex->state, MUTEX_CONTENDED);
if (state == MUTEX_UNLOCKED) {
break;
@@ -44,7 +44,7 @@ mutex_lock_slow(struct mutex *mutex)
}
if (sleepq_empty(sleepq)) {
- state = atomic_swap_seq_cst(&mutex->state, MUTEX_LOCKED);
+ state = atomic_swap_acquire(&mutex->state, MUTEX_LOCKED);
assert(state == MUTEX_CONTENDED);
}