projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename all memory primitives with prefix cmm_
[urcu.git]
/
urcu-bp-static.h
diff --git
a/urcu-bp-static.h
b/urcu-bp-static.h
index 515be288d6b75011a1428994343d641e2cf9f330..394476b232d5aff5e52aeb1c283627e1249c1f4a 100644
(file)
--- a/
urcu-bp-static.h
+++ b/
urcu-bp-static.h
@@
-175,6
+175,7
@@
static inline void _rcu_read_lock(void)
if (unlikely(!rcu_reader))
rcu_bp_register();
if (unlikely(!rcu_reader))
rcu_bp_register();
+ cmm_barrier(); /* Ensure the compiler does not reorder us with mutex */
tmp = rcu_reader->ctr;
/*
* rcu_gp_ctr is
tmp = rcu_reader->ctr;
/*
* rcu_gp_ctr is
@@
-186,7
+187,7
@@
static inline void _rcu_read_lock(void)
* Set active readers count for outermost nesting level before
* accessing the pointer.
*/
* Set active readers count for outermost nesting level before
* accessing the pointer.
*/
- smp_mb();
+
cmm_
smp_mb();
} else {
_STORE_SHARED(rcu_reader->ctr, tmp + RCU_GP_COUNT);
}
} else {
_STORE_SHARED(rcu_reader->ctr, tmp + RCU_GP_COUNT);
}
@@
-197,8
+198,9
@@
static inline void _rcu_read_unlock(void)
/*
* Finish using rcu before decrementing the pointer.
*/
/*
* Finish using rcu before decrementing the pointer.
*/
- smp_mb();
+
cmm_
smp_mb();
_STORE_SHARED(rcu_reader->ctr, rcu_reader->ctr - RCU_GP_COUNT);
_STORE_SHARED(rcu_reader->ctr, rcu_reader->ctr - RCU_GP_COUNT);
+ cmm_barrier(); /* Ensure the compiler does not reorder us with mutex */
}
#ifdef __cplusplus
}
#ifdef __cplusplus
This page took
0.024018 seconds
and
4
git commands to generate.