summaryrefslogtreecommitdiff
path: root/kern/sref.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2018-01-12 20:52:52 +0100
committerRichard Braun <rbraun@sceen.net>2018-01-12 20:52:52 +0100
commit440a0b8dfb88dde1490feeee56c603d2eac7add2 (patch)
tree7f4ab8acf1c4047182c47925783d253e9bddf529 /kern/sref.c
parent091e283bb43fd9e7e50507d20d8f24d1e0f32895 (diff)
kern/sref: relax memory ordering on weak reference operations
Diffstat (limited to 'kern/sref.c')
-rw-r--r--kern/sref.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kern/sref.c b/kern/sref.c
index d2eb818..1ad9212 100644
--- a/kern/sref.c
+++ b/kern/sref.c
@@ -248,13 +248,13 @@ sref_weakref_init(struct sref_weakref *weakref, struct sref_counter *counter)
static void
sref_weakref_mark_dying(struct sref_weakref *weakref)
{
- atomic_or(&weakref->addr, SREF_WEAKREF_DYING, ATOMIC_RELEASE);
+ atomic_or(&weakref->addr, SREF_WEAKREF_DYING, ATOMIC_RELAXED);
}
static void
sref_weakref_clear_dying(struct sref_weakref *weakref)
{
- atomic_and(&weakref->addr, SREF_WEAKREF_MASK, ATOMIC_RELEASE);
+ atomic_and(&weakref->addr, SREF_WEAKREF_MASK, ATOMIC_RELAXED);
}
static int