projects
/
userspace-rcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: memory leak in urcu-checker
[userspace-rcu.git]
/
urcu-pointer.h
diff --git
a/urcu-pointer.h
b/urcu-pointer.h
index 03bfe793c6aaf339a03d7aa0e64bed0b105a8646..6c79c58fe9e6293a41772bba1d2a91aad8b503be 100644
(file)
--- a/
urcu-pointer.h
+++ b/
urcu-pointer.h
@@
-29,12
+29,13
@@
#include <urcu/compiler.h>
#include <urcu/arch.h>
#include <urcu/uatomic.h>
#include <urcu/compiler.h>
#include <urcu/arch.h>
#include <urcu/uatomic.h>
+#include <urcu/urcu-checker.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
extern "C" {
#endif
-#if
def _LGPL_SOURCE
+#if
defined(_LGPL_SOURCE) || defined(URCU_INLINE_SMALL_FUNCTIONS)
#include <urcu/static/urcu-pointer.h>
#include <urcu/static/urcu-pointer.h>
@@
-44,7
+45,11
@@
extern "C" {
* Fetch a RCU-protected pointer. Typically used to copy the variable ptr to a
* local variable.
*/
* Fetch a RCU-protected pointer. Typically used to copy the variable ptr to a
* local variable.
*/
-#define rcu_dereference _rcu_dereference
+#define rcu_dereference(p) \
+ ({ \
+ rcu_read_ongoing_check_debug(__func__); \
+ _rcu_dereference(p); \
+ })
/*
* type *rcu_cmpxchg_pointer(type **ptr, type *new, type *old)
/*
* type *rcu_cmpxchg_pointer(type **ptr, type *new, type *old)
@@
-62,7
+67,7
@@
extern "C" {
#define rcu_xchg_pointer _rcu_xchg_pointer
#define rcu_set_pointer _rcu_set_pointer
#define rcu_xchg_pointer _rcu_xchg_pointer
#define rcu_set_pointer _rcu_set_pointer
-#else /* !
_LGPL_SOURCE
*/
+#else /* !
(defined(_LGPL_SOURCE) || defined(URCU_INLINE_SMALL_FUNCTIONS))
*/
extern void *rcu_dereference_sym(void *p);
#define rcu_dereference(p) \
extern void *rcu_dereference_sym(void *p);
#define rcu_dereference(p) \
@@
-108,7
+113,7
@@
extern void *rcu_set_pointer_sym(void **p, void *v);
_________pv); \
} while (0)
_________pv); \
} while (0)
-#endif /* !
_LGPL_SOURCE
*/
+#endif /* !
(defined(_LGPL_SOURCE) || defined(URCU_INLINE_SMALL_FUNCTIONS))
*/
/*
* void rcu_assign_pointer(type *ptr, type *new)
/*
* void rcu_assign_pointer(type *ptr, type *new)
This page took
0.054855 seconds
and
4
git commands to generate.