X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=README;h=ae8b6619cb5645dfcab48f3bf96d257b20b42973;hb=015c702fdc5f2a87110a99111d13da5e91d1f3db;hp=d71bbe7597e1fb893cd13742cbb16f6e7ef61e1c;hpb=c97ae6eb5bf6baea503d9df98e8376c0bd36b629;p=urcu.git diff --git a/README b/README index d71bbe7..ae8b661 100644 --- a/README +++ b/README @@ -26,18 +26,26 @@ Reading Writing rcu_assign_pointer() and rcu_xchg_pointer() may be called anywhere. - After, synchronize_rcu() must be called. When it returns, the old values - are not in usage anymore. + After, synchronize_rcu() must be called. When it returns, the old + values are not in usage anymore. +Being careful with signals -Usage of DEBUG_FULL_MB + The library uses signals internally. The signal handler is + registered with the SA_RESTART flag. However, these signals may cause + some non-restartable system calls to fail with errno = EINTR. Care + should be taken to restart system calls manually if they fail with this + error. A list of non-restartable system calls may be found in + signal(7). To ensure the Userspace RCU library does not use signals, + define CONFIG_URCU_AVOID_SIGNALS at compile-time. - DEBUG_FULL_MB uses full SMP barriers for readers. This eliminates the - need for signals but results in slower reads. +Usage of CONFIG_URCU_AVOID_SIGNALS + + CONFIG_URCU_AVOID_SIGNALS uses full SMP barriers for readers. This + eliminates the need for signals but results in slower reads. Usage of DEBUG_YIELD DEBUG_YIELD is used to add random delays in the code for testing purposes. -