projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
urcu: fix compat_futex_noasync()
[urcu.git]
/
rculfhash.c
diff --git
a/rculfhash.c
b/rculfhash.c
index e9cf0622f53576ef8ad8c08eda082c37f1151b86..3ad3618aa7297ee5403d176d5c7f0e02be504def 100644
(file)
--- a/
rculfhash.c
+++ b/
rculfhash.c
@@
-1073,6
+1073,11
@@
int _cds_lfht_del(struct cds_lfht *ht, unsigned long size,
if (caa_unlikely(is_removed(next)))
return -ENOENT;
assert(!is_bucket(next));
if (caa_unlikely(is_removed(next)))
return -ENOENT;
assert(!is_bucket(next));
+ /*
+ * The del operation semantic guarantees a full memory barrier
+ * before the uatomic_or atomic commit of the deletion flag.
+ */
+ cmm_smp_mb__before_uatomic_or();
/*
* We set the REMOVED_FLAG unconditionally. Note that there may
* be more than one concurrent thread setting this flag.
/*
* We set the REMOVED_FLAG unconditionally. Note that there may
* be more than one concurrent thread setting this flag.
This page took
0.023567 seconds
and
4
git commands to generate.