./configure
make
make install
+ ldconfig
Hints: Forcing 32-bit build:
* CFLAGS="-m32 -g -O2" ./configure
therefore not compatible with liburcu on x86 32-bit (i386, i486, i586, i686).
The problem has been reported to the gcc community:
http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg281255.html
+- gcc 3.3 cannot match the "xchg" instruction on 32-bit x86 build.
+ See: http://kerneltrap.org/node/7507
- Alpha, ia64 and ARM architectures depend on 4.x gcc with atomic builtins
support.
* Its API is currently experimental. It may change in future library
releases.
+Usage of urcu-call-rcu
+
+ * Follow instructions for either liburcu, liburcu-qsbr,
+ liburcu-mb, liburcu-signal, or liburcu-bp above.
+ The urcu-call-rcu functionality is provided for each of
+ these library modules.
+ * Provides the call_rcu() primitive to enqueue delayed callbacks
+ in a manner similar to defer_rcu(), but without ever delaying
+ for a grace period. On the other hand, call_rcu()'s best-case
+ overhead is not quite as good as that of defer_rcu().
+ * Provides call_rcu() to allow asynchronous handling of RCU
+ grace periods. A number of additional functions are provided
+ to manage the helper threads used by call_rcu(), but reasonable
+ defaults are used if these additional functions are not invoked.
+ See API.txt for more details.
+
Being careful with signals
The liburcu library uses signals internally. The signal handler is