summaryrefslogtreecommitdiff
path: root/kern/semaphore_i.h
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/semaphore_i.h
parentb5864f82b9c0d8ea2e825e7d86bd8cdeb825f870 (diff)
Replace sequential consistency with more efficient orders
Diffstat (limited to 'kern/semaphore_i.h')
-rw-r--r--kern/semaphore_i.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/kern/semaphore_i.h b/kern/semaphore_i.h
index 9aa68e0..5498506 100644
--- a/kern/semaphore_i.h
+++ b/kern/semaphore_i.h
@@ -37,7 +37,7 @@ semaphore_dec(struct semaphore *semaphore)
break;
}
- prev = atomic_cas_seq_cst(&semaphore->value, value, value - 1);
+ prev = atomic_cas_acquire(&semaphore->value, value, value - 1);
} while (prev != value);
return value;
@@ -48,7 +48,7 @@ semaphore_inc(struct semaphore *semaphore)
{
unsigned int prev;
- prev = atomic_fetch_add(&semaphore->value, 1, ATOMIC_SEQ_CST);
+ prev = atomic_fetch_add(&semaphore->value, 1, ATOMIC_RELEASE);
assert(prev != SEMAPHORE_VALUE_MAX);
return prev;
}