Hi,

In urcu_qsbr.h I can see the following

    85  /*
86 * QSBR read lock/unlock are guaranteed to be no-ops. Therefore, we expose them 87 * in the LGPL header for any code to use. However, the debug version is not 88 * nops and may contain sanity checks. To activate it, applications must be 89 * recompiled with -DRCU_DEBUG (even non-LGPL/GPL applications). This is the
    90   * best trade-off between license/performance/code triviality and
    91   * library debugging & tracing features we could come up with.
    92   */
    93
    94  #if (!defined(BUILD_QSBR_LIB) && defined(RCU_DEBUG))
    95
    96  static inline void rcu_read_lock(void)
    97  {
    98  }
    99
   100  static inline void rcu_read_unlock(void)
   101  {
   102  }
   103
   104  #else /* !RCU_DEBUG */
   105
   106  extern void rcu_read_lock(void);
   107  extern void rcu_read_unlock(void);
   108
   109  #endif /* !RCU_DEBUG */

Shouldn't the condition in line 94 actually be

    94  #if (!defined(BUILD_QSBR_LIB) && !defined(RCU_DEBUG))

So when RCU_DEBUG is _not_ defined we get static inlines for rcu_read_{,un}lock() ?

Thanks!


_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to