[ltt-dev] [RELEASE] Userspace RCU 0.6.0

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Fri Jun 10 21:14:18 EDT 2011

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.


- Added call_rcu() support, graciously contributed by Paul E. McKenney.
- Added urcu/cds.h and merged all "Concurrent Data Containers" (CDS)
  into a single .so: liburcu-cds.so to have a single header/shared
  object holding all concurrency-aware data containers. It provides
  support for RCU lists, queues and stacks at the moment.
- liburcu 0.6.0 now allows linking a single application with multiple
  flavors of RCU. This required a library API change which is
  incompatible with older 0.5.x liburcu. The .so version number
  is therefore bumped from 0 to 1 (e.g. liburcu.so.1).
- Added "atfork" handling API, documented in README. Only useful for
  processes using fork() without following exec().
- Renaming the following files, keeping the old files (producing a
  compiler warning):
    urcu/uatomic_arch.h -> urcu/uatomic.h
    urcu/urcu-futex.h -> urcu/futex.h
    urcu/urcu_ref.h -> urcu/ref.h

Project website: http://lttng.org/urcu
Download link: http://www.lttng.org/files/urcu/

Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.

More information about the lttng-dev mailing list