#include <urcu/futex.h>
#include <urcu/tls-compat.h>
#include <urcu/rand-compat.h>
+#include <urcu/urcu-checker.h>
#ifdef __cplusplus
extern "C" {
* intent is that this function meets the 10-line criterion in LGPL,
* allowing this function to be invoked directly from non-LGPL code.
*/
-static inline void _rcu_read_lock(void)
+static inline __attribute__((always_inline))
+void _rcu_read_lock(void)
{
unsigned long tmp;
+ rcu_read_lock_debug();
cmm_barrier();
tmp = URCU_TLS(rcu_reader).ctr;
_rcu_read_lock_update(tmp);
* helper are smaller than 10 lines of code, and are intended to be
* usable by non-LGPL code, as called out in LGPL.
*/
-static inline void _rcu_read_unlock(void)
+static inline __attribute__((always_inline))
+void _rcu_read_unlock(void)
{
unsigned long tmp;
tmp = URCU_TLS(rcu_reader).ctr;
_rcu_read_unlock_update_and_wakeup(tmp);
cmm_barrier(); /* Ensure the compiler does not reorder us with mutex */
+ rcu_read_unlock_debug();
}
/*