projects
/
urcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update readme
[urcu.git]
/
urcu-pointer.c
diff --git
a/urcu-pointer.c
b/urcu-pointer.c
index 1461c60f367b032276db9b301bf57e93488a063b..79ee72a08e7110ba67a44b80f834096543eaa379 100644
(file)
--- a/
urcu-pointer.c
+++ b/
urcu-pointer.c
@@
-30,7
+30,7
@@
extern void synchronize_rcu(void);
extern void synchronize_rcu(void);
-void *rcu_dereference(void *p)
+void *rcu_dereference
_sym
(void *p)
{
return _rcu_dereference(p);
}
{
return _rcu_dereference(p);
}
@@
-50,14
+50,9
@@
void *rcu_xchg_pointer_sym(void **p, void *v)
void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new)
{
wmb();
void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new)
{
wmb();
- return uatomic_cmpxchg(p, old, _new);
-}
-
-void *rcu_publish_content_sym(void **p, void *v)
-{
- void *oldptr;
+ if (likely(URCU_CAS_AVAIL()))
+ return uatomic_cmpxchg(p, old, _new);
- oldptr = _rcu_xchg_pointer(p, v);
- synchronize_rcu();
- return oldptr;
+ /* Compatibility for i386. Old-timer. */
+ return compat_uatomic_cmpxchg(p, old, _new);
}
}
This page took
0.023433 seconds
and
4
git commands to generate.