liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library.
This data synchronization library provides read-side access which scales linearly with the number of cores. It does so by allowing multiples copies of a given data structure to live at the same time, and by monitoring the data structure accesses to detect grace periods after which memory reclamation is possible.
One can check sources from web git tree or by cloning:
git clone git://lttng.org/userspace-rcu.git
Library currently supports x86 and powerpc. LGPL-compatible low-level primitive headers will be required for other architectures. Note that the build system is at best rudimentary at the moment.
Its low-level details were described in libsync, which is effectively the same library, but with human face. With above changes I suppose there is no need for another lib – liburcu moves in the right direction.