X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=README.md;h=ba5bb08deab9dd8f3a912b4d92835b37151c46d3;hb=a51018daec6f563f9e74d37747c09d4f10ed7958;hp=8f19e18c2dd849b8868ad01fe0c6caba9c171fe5;hpb=af9254ab1cdee36cd7b68d52a49ba6a25d54b1c4;p=userspace-rcu.git diff --git a/README.md b/README.md index 8f19e18..ba5bb08 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,6 @@ Should also work on: - Android - NetBSD 5 - OpenBSD - - Darwin (more testing needed before claiming support for these OS). @@ -176,7 +175,7 @@ This is the preferred version of the library, in terms of grace-period detection speed, read-side speed and flexibility. Dynamically detects kernel support for `sys_membarrier()`. Falls back on `urcu-mb` scheme if support is not present, which has slower -read-side. Use the --disable-sys-membarrier-fallback configure option +read-side. Use the `--disable-sys-membarrier-fallback` configure option to disable the fall back, thus requiring `sys_membarrier()` to be available. This gives a small speedup when `sys_membarrier()` is supported by the kernel, and aborts in the library constructor if not @@ -251,6 +250,14 @@ protected pointer. After, `urcu__synchronize_rcu()` must be called. When it returns, the old values are not in usage anymore. +As an alternative to `urcu__synchronize_rcu()`, +it is also possible to use the urcu polling mechanism to wait for a +grace period to elapse. This can be done by using +`urcu__start_poll_synchronize_rcu()` +to start the grace period polling, and then invoke +`urcu__poll_state_synchronize_rcu()`, which returns true if +the grace period has completed, false otherwise. + ### Usage of `liburcu-defer` @@ -414,7 +421,7 @@ theoretically yielding slightly better performance. By default the library is configured with extra debugging checks for lock-free hash table iterator traversal disabled. -Building liburcu with --enable-cds-lfht-iter-debug and rebuilding +Building liburcu with `--enable-cds-lfht-iter-debug` and rebuilding application to match the ABI change allows finding cases where the hash table iterator is re-purposed to be used on a different hash table while still being used to iterate on a hash table. @@ -448,7 +455,7 @@ follows: - An application executable is built with `_LGPL_SOURCE` defined, includes any of the Userspace RCU 0.10 urcu flavor headers, and is built - without the -fpic compiler option. + without the `-fpic` compiler option. - The Userspace RCU 0.10 library shared objects are updated to 0.11 or 0.12 without rebuilding the application. @@ -460,7 +467,7 @@ Some possible work-arounds for this are: - Rebuild the application against Userspace RCU 0.11+. - - Rebuild the application with -fpic. + - Rebuild the application with `-fpic`. - Upgrade Userspace RCU to 0.13+ without installing 0.11 nor 0.12.