projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Phase 1 of deprecating liburcu-signal
[urcu.git]
/
include
/
urcu
/
static
/
urcu-signal.h
diff --git
a/include/urcu/static/urcu-signal.h
b/include/urcu/static/urcu-signal.h
index baee2298c9232e34b16e5ca6a0e0923fb0fd7daf..0f78ac0d1e1378d8a2898ce27ae424212747d9ce 100644
(file)
--- a/
include/urcu/static/urcu-signal.h
+++ b/
include/urcu/static/urcu-signal.h
@@
-95,13
+95,14
@@
static inline void _urcu_signal_read_lock(void)
*/
static inline void _urcu_signal_read_unlock_update_and_wakeup(unsigned long tmp)
{
*/
static inline void _urcu_signal_read_unlock_update_and_wakeup(unsigned long tmp)
{
+ unsigned long *ctr = &URCU_TLS(urcu_signal_reader).ctr;
+
if (caa_likely((tmp & URCU_GP_CTR_NEST_MASK) == URCU_GP_COUNT)) {
if (caa_likely((tmp & URCU_GP_CTR_NEST_MASK) == URCU_GP_COUNT)) {
- cmm_barrier();
- _CMM_STORE_SHARED(URCU_TLS(urcu_signal_reader).ctr, tmp - URCU_GP_COUNT);
- cmm_barrier();
+ uatomic_store(ctr, tmp - URCU_GP_COUNT, CMM_SEQ_CST);
urcu_common_wake_up_gp(&urcu_signal_gp);
urcu_common_wake_up_gp(&urcu_signal_gp);
- } else
- _CMM_STORE_SHARED(URCU_TLS(urcu_signal_reader).ctr, tmp - URCU_GP_COUNT);
+ } else {
+ uatomic_store(ctr, tmp - URCU_GP_COUNT, CMM_RELAXED);
+ }
}
/*
}
/*
This page took
0.0238 seconds
and
4
git commands to generate.