# SPDX-FileCopyrightText: 2011-2024 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
#
# SPDX-License-Identifier: CC-BY-4.0
2025-04-14 Userspace RCU 0.15.2
* fix: __atomic_always_lock_free() not a constant expression on g++ < 5.1
* fix: urcu assert fallback for pre-C11 builds
* doc: update uatomic-api for static assert
* Add uatomic size static assert for 's390'
* Add uatomic size static assert for 'sparc64'
* Add uatomic size static assert for 'ppc'
* Add uatomic size static assert for 'x86'
* Add uatomic size static assert for 'generic'
* Add uatomic size static assert
* Use UATOMIC_HAS_ATOMIC_INT/LLONG in generic implementation
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for x86
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for tile
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for sparc64
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for s390
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for riscv
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for ppc
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for nios2
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for mips
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for m68k
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for loongarch
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for ia64
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for hppa
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for 'gcc' arch
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for arm
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for alpha
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for aarch64
* Add UATOMIC_HAS_ATOMIC_INT/LLONG for atomic builtins
* Add builtin atomics size static asserts
* cleanup: use URCU_GCC_VERSION from compiler.h
* fix: atomic builtins defines for type support
* Move back CMM_LOAD/STORE_SHARED to volatile access
* Add cmm_annotate_mem_acquire() to URCU_DEREFERENCE_USE_VOLATILE rcu_dereference
* Use uatomic_load CMM_RELAXED in URCU_DEREFERENCE_USE_VOLATILE
* Fix: Re-introduce URCU_DEREFERENCE_USE_VOLATILE read barrier depends for alpha
* Tree-wide: Rename to uatomic_load/uatomic_store
* src: Use __*__ for attribute names
* API: Use __*__ for attribute names
* Fix Changelog 0.15.1 date
2025-02-18 Userspace RCU 0.15.1
* uatomic/generic: Add missing #include <stdlib.h>
* docs: Clarify that make is required to build the project
* fix: add missing SPDX headers to urcu/uatomic/api.h
* compiler.h: Remove caa_unqual_scalar_typeof
2024-12-20 Userspace RCU 0.15.0
* Fix compilation errors
* Document cmm_cast_volatile
* Honor URCU_DEREFERENCE_USE_VOLATILE
* arm: Use atomic builtins for xchg if supported
* Introduce _CMM_TOOLCHAIN_SUPPORT_C11_MM
* Seperate uatomic and uatomic_mo
* uatomic: Fix header guard comment
* Fix: missing typename in URCU_FORCE_CAST
* Allow building with GCC >= 13.3 on RISC-V
* pointer.h: Fix the rcu_cmpxchg_pointer documentation
* rculfhash: make cds_lfht_iter_get_node argument const
* lfstack: make cds_lfs_empty argument const
* wfcqueue: make cds_wfcq_empty arguments const
* wfstack: make cds_wfs_empty argument const
* cds_list: make cds_list_replace @old argument const
* cds_list: make cds_list_empty const
* Adjust shell script to allow Bash in other locations
* futex.h: Indent preprocessor directives
* futex.h: Use urcu_posix_assert to validate unused values
* Use futex on OpenBSD
* fix: handle EINTR correctly in get_cpu_mask_from_sysfs
* Relicense src/compat-smp.h to MIT
* uatomic/x86: Remove redundant memory barriers
* cleanup: move rand_r compat code to tests
* ppc: Document cache line size choice
* Fix: change order of _cds_lfht_new_with_alloc parameters
* Add support for custom memory allocators for rculfhash
* ppc.h: use mftb on ppc
* rcutorture: Check histogram of ages
* docs: Add links to project resources
* Fix: allow clang to build liburcu on RISC-V
* Fix -Walloc-size
* cleanup: use an enum for the error states of nr_cpus_mask
* fix: add missing SPDX licensing tags
* urcu/uatomic/riscv: Mark RISC-V as broken
* Fix: urcu-bp: misaligned reader accesses
* rculfhash: Only pass integral types to atomic builtins
* LoongArch: Document that byte and short atomics are implemented with LL/SC
* Add LoongArch support
* Tests: Add test for byte/short atomics on addresses which are not word-aligned
* Complete removal of urcu-signal flavor
* doc/examples: Remove urcu-signal example
* tests/common: Remove urcu-signal common test files
* tests/benchmark: Remove urcu-signal benchmark tests
* tests/regression: Remove urcu-signal regression tests
* tests/unit: Remove urcu-signal unit tests
* Fix: Add missing cmm_smp_mb() in deprecated urcu-signal
* urcu/uatomic.h: Improve verbosity of static assert error messages
* urcu/compiler: Add urcu_static_assert
* Phase 1 of deprecating liburcu-signal
* uatomic/generic: Fix redundant declaration warning
* tests: Add tests for checking race conditions
* Add cmm_emit_legacy_smp_mb()
* urcu/annotate: Add CMM annotation
* tests/unit/test_build: Quiet unused return value
* benchmark: Use uatomic for accessing global states
* tests: Use uatomic for accessing global states
* urcu-wait: Fix wait state load/store
* Add CMM memory model
* urcu/arch/generic: Use atomic builtins if configured
* urcu/compiler: Use atomic builtins if configured
* configure: Add --enable-compiler-atomic-builtins option
* Fix: tests/rcutorture: Put thread offline on busy-wait
* tests/regression/rcutorture: Use urcu-wait
* tests/rcutorture: Factor out thread registration
* tests/regression/rcutorture: Add wait state
* urcu-wait: Initialize node in URCU_WAIT_NODE_INIT
* Complete REUSE support
* extras/abi: license data files under CC-1.0
* examples: use SPDX identifiers
* tests: use SPDX identifiers
* src: use SPDX identifiers
* Public headers: use SPDX identifiers
* Build system: use SPDX identifiers
* Fix: urcu-wait: add missing futex.h include
* doc: update GCC baseline to 4.8
* doc: update FreeBSD tested version
* doc: Remove Solaris from tested platforms
* Revert "compiler.h: Introduce caa_unqual_scalar_typeof"
* rculfhash: Use caa_container_of_check_null in cds_lfht_entry
* compiler.h: Introduce caa_container_of_check_null
* compiler.h: Introduce caa_unqual_scalar_typeof
* Avoid calling caa_container_of on NULL pointer in cds_lfht macros
* Fix: revise urcu_read_lock_update() comment
* Fix: uatomic powerpc comment about lwsync
* fix: aarch64: allow RHEL7 gcc 4.8.5-11
* aarch64: Implement caa_cpu_relax as yield instruction
* fix: warning 'noreturn' function does return on ppc
* Fix: use __noreturn__ for C11-compatibility
* Adjust shell scripts to allow Bash in other locations
* Add support for OpenBSD
* Bump version to 0.15.0-pre
2023-02-14 Userspace RCU 0.14.0
* Fix: urcu-bp: only teardown call-rcu worker in destructor
* Fix: rculfhash: urcu_die() takes positive error value
* Fix: call_rcu: teardown default call_rcu worker on application exit
* Fix: join worker thread in call_rcu_data_free
* Docs: clarify grace period polling API
* Document grace period polling in rcu-api.md
* Implement poll rcu stress test in rcutorture
* urcu-memb,mb,signal: Implement grace period polling
* Fix: auto-resize hash table destroy deadlock
* Fix building on MSYS2
* rculfhash: Include rculfhash-internal.h from local directory
* Remove "Darwin" from "should also work on list"
* Merge branch 'adah1972-improve-md'
* Add semicolons at the end of function prototypes
* Wrap a file name in backticks
* Wrap command-line options in backticks
* Fix a wrong format
* Wrap URLs in angle brackets
* Fix Markdown issues
* Fix: Always check pthread_create for failures
* Disable signals in URCU background threads
* Fix: futex.h: include headers outside extern C
* Fix: add missing unused attribute to _rcu_dereference
* Fix: change method used by _rcu_dereference to strip type constness
* Fix: remove type constness in URCU_FORCE_CAST's C++ version
* Move extern "C" down in include/urcu/urcu-bp.h
* fix: ifdef linux specific cpu count compat
* Add unit tests for possible_cpus_array_len
* fix: sysconf(_SC_NPROCESSORS_CONF) can be less than max cpu id
* Fix: revise obsolete command in README.md
* Fix: workqueue: remove unused variable "ret"
* Fix: urcu-qsbr: futex wait: handle spurious futex wakeups
* Fix: urcu: futex wait: handle spurious futex wakeups
* Fix: urcu-wait: futex wait: handle spurious futex wakeups
* Fix: defer_rcu: futex wait: handle spurious futex wakeups
* Fix: call_rcu: futex wait: handle spurious futex wakeups
* Fix: workqueue: futex wait: handle spurious futex wakeups
* Fix: Use %lu rather than %ld to print count
* Update ABI definition files
* Bump version current and age
* alpha: allocate membarrier system call number
* Bump version to 0.14.0-pre
* Improved test framework
* rculfhash: introduce cds_lfht_node_init_deleted
* Fix: changelog: v0.13.0 was released in 2021
* cleanup: i386 arch detection
* fix: properly detect 'cmpxchg' on x86-32
* fix: use urcu-tls compat with c++ compiler
* Fix typo
* fix: remove autoconf features default value in help message
* fix: add missing pkgconfig file for memb flavour lib
* Cleanup: Tests: Remove useless pre-C99 compatibility code from tap.h
* Document C99 and C++11 requirement in README.md
* Always use '__thread' for Thread local storage except on MSVC
* Fix: powerpc32: transparent unions alter calling convention
* fix: don't use C++ thread_local on MacOs
* wfcqueue API: implement overloaded wrappers with templates
* wfcqueue: combine C++ API cds_wfcq_head_cast with overloading
* wfstack C++ API: implement overloaded wrappers with templates
* lfstack C++ API: implement overloaded wrappers with templates
* wfstack: combine C++ API cds_wfs_stack_cast with overloading
* lfstack: combine C++ API cds_lfs_stack_cast with overloading
* fix: test_build tap plan
* Test C++ build of list head init
* Fix order of initializers in CDS_LIST_HEAD_INIT
* unit tests: test wfcqueue, wfstack, lfstack empty check functions in C++
* wfcqueue: implement C++ API based on function overloading
* wfstack: implement C++ API based on function overloading
* lfstack: implement C++ API based on function overloading
* Fix tap.h: remove extra semicolon in pass/fail macros
* Add C++ build tests
* Build and run regression and unit tests as C++ programs
* Add --enable-Werror configure switch
* Add `urcu_posix_assert()` as `assert()` replacement
* Rename `urcu_assert()` to `urcu_assert_debug()`
* cleanup: spelling fixes in comments
* Make temporary variable in _rcu_dereference non-const
* (tls-ie2) Fix: x86 and s390: uatomic __hp() macro C++ support
* Fix: x86 and s390: uatomic __hp() macro clang support
* Fix: x86 and s390 uatomic: __hp() macro warning with gcc 11
2021-06-03 Userspace RCU 0.13.0
* Document known ABI issue in README.md
* Add serialized ABI definition files
* bump SONAME major to 8
* Remove all SONAME(6) ABI aliases
* .gitignore: list ignored Makefiles
* tests: Add a simple compile test for caa_get_cycles
* fix: clock_gettime on macOs
* Fix: rculist header: use parenthesis around macro parameters
* Fix: rcuhlist header: use parenthesis around macro parameters
* Fix: hlist header: use parenthesis around macro parameters
* Fix: list.h: use parenthesis around macro parameters, caa_container_of()
* Fix: hlist iteration relies on undefined behavior
* Fix: use __atomic_load() rather than atomic load explicit
* Fix: use atomic load memory_order_consume for rcu_dereference on C11/C++11
* fix: we used weak symbols not weak aliases
* fix: include 'sys/endian.h' on FreeBSD
* fix: warnings on non-Linux platforms
* fix: HAVE_SCHED_SETAFFINITY is not defined
* configure: enable extended compiler warnings
* cleanup: explicitly mark unused parameters (-Wunused-parameter)
* fix: shadowed local variable (-Wshadow)
* cleanup: all functions have declarations (-Wmissing-prototypes)
* Import libtap from babeltrace
* cleanup: add 'noreturn' attribute to '_uatomic_link_error'
* fix: add missing 'S' to AC_CHECK_PROGS
* README.md: Document supported Glibc version
* README: cleanup stale MacOS information
* Bump version to 0.13.0-pre
* configure: standardise include path
* Remove glibc < 2.4 compat code for sched_setaffinity
* configure: regroup automake conditionals
* Introduce AE_FEATURE to manage configure features
* configure: regroup library checks
* configure: regroup and expand C header and program checks
* configure: regroup and expand C compiler checks
* configure: host specific config
* tests: Move tap-driver.sh out of the autotools aux directory
* configure: Set autotools baseline
* configure: centralize version information
* fix: exclude clang from GCC version blacklists
* aarch64: blacklist gcc prior to 5.1
* Fix: configure: support Autoconf 2.70
* Don't force a target and optimization level on ARMv7
* Use DMB only on ARMv7
* Blacklist GCC 4.4.0, 4.4.1 and 4.4.2 on ARM
* Cleanup: Move ARM specific code to urcu/arch/arm.h
* fix: bump tests thread limit to 4096
* fix: reorder x86 arch detection
* fix: typo in futex syscall define check
* Compile time futex syscall detection
* Static arch and uatomic headers
* Add git-review config
* cleanup: Improve wording of CONFIG_RCU_DEBUG description
* fix: explicitly include urcu/config.h in files using CONFIG_RCU_ defines
* Fix typo in README.md
* fix: add -lurcu-common to pkg-config libs for each flavor
* call_rcu: Fix race between rcu_barrier() and call_rcu_data_free()
* Cleanup: tls-compat.h: add parentheses around expression (coding style)
* Fix: tls-compat.h exposes compiler-dependent public configuration
* Fix: tap array subscript has type char warning
2020-04-09 Userspace RCU 0.12.0
* tls-compat.h: introduce DEFINE_URCU_TLS_INIT
* Use _umtx_op for futex on FreeBSD
* Add FreeBSD, DragonFly to syscall-compat.h
* urcu-bp: perform thread registration on urcu_bp_register_thread
* Require automake >= 1.12
* cds_lfht_is_node_deleted parameter can be marked const
* Fix: provide errno as argument to urcu_die()
* Fix: rculfhash worker needs to unblock to SIGRCU
* Cleanup: test_perthreadlock_timing: handle pthread mutex errors
* Fix: SONAME bump to 6.1.0
* Cleanup: remove unused variable from configure.ac check
* Fix: urcu/futex.h: users of struct timespec should include time.h
2019-05-06 Userspace RCU 0.11.0
* Bump library version to 6:0:1
* Cleanup: update code layout to fix old gcc warning
* Fix: typo CPPLAGS in examples Makefile
* Harmonize pprint macro across projects
* Check for TLS support after CC detection
* Update macros from the autotools archive
* tap-driver.sh: flush stdout after each test result
* Update dead link in lgpl-relicensing.txt
* Add multiflavor compat identifiers
* Cleanup: missing sign compare fixes
* Cleanup: enable signed/unsigned compare compiler warning
* Cleanup: compiler warning on 32-bit architectures
* config.h.in: rename CONFIG_RCU_MULTIFLAVOR to CONFIG_RCU_HAVE_MULTIFLAVOR
* rculfhash: implement iterator debugging config option
* Fix: examples silent rules on Solaris
* Add missing fall through annotations
* Fix: symbol aliases with TLS compat
* Port: no symbols aliases on MacOS
* Add -Wextra to CFLAGS
* Add silent mode to examples Makefiles
* doc: update examples to API changes
* test multiflavor single compile unit
* Update README following API changes
* Use new header locations for includes from urcu code
* Update call-rcu.h and defer.h comments and include guards
* rculfqueue.h: do not include urcu-call-rcu.h
* rculfhash: support use with multiple flavors per compile unit
* rculfhash: do not include urcu-call-rcu.h from public API
* Refactor liburcu to support many flavors per compile unit
* Fix: only wait if work queue is empty in real-time mode
* Fix: don't wait after completion of a work queue job batch
* Fix: don't wait after completion of job batch if work queue is empty
* Fix: workqueue: struct urcu_work vs rcu_head mixup
* Cleanup: workqueue: update comments referring to call-rcu
* Fix: mixup between URCU_WORKQUEUE_RT and URCU_CALL_RCU_RT
* test_rwlock: Add per-thread count to verbose output
* Add *.exe to gitignore for Cygwin
* Fix: pthread_rwlock initialization on Cygwin
* Fix: compat_futex_noasync on Cygwin
* wfcqueue: allow defining CDS_WFCQ_WAIT_SLEEP to override `poll'
* Update documentation for call_rcu before/after fork
* Add support for the RISC-V architecture
* Tests: Add tap-driver.sh for automake < 1.12
* Tests: Replace prove by autotools tap runner
* liburcu-bp: Use membarrier private expedited when available
* liburcu: Use membarrier private expedited when available
* rculfhash: improve error handling of mmap backend
* Fix: don't use overlapping mmap mappings on Cygwin
* Tests fix: errors in shell scripts
* Revert "Use initial-exec tls model"
* Use initial-exec tls model
* Fix: don't use membarrier SHARED syscall command in liburcu-bp
* Tests fix: add missing Cygwin thread id
* Fix: assignment from incompatible pointer type warnings
* Tests fix: unused variable warnings
* Fix: add missing m68k headers to dist
* Bump version to 0.11-pre
2017-06-12 Userspace RCU 0.10.0
* Bump library soname due to urcu flavor structure change
* Cleanup: use mutex_lock() wrapper in rculfhash
* Use workqueue in rculfhash
* Implement urcu workqueues internal API
* Add support for m68k architecture
* Set -Wall globally in AM_CFLAGS
* Fix: remove double use of PTHREAD_CFLAGS
* Re-add PTHREAD_CFLAGS to global CFLAGS
* Fix: Don't override user variables within the build system
* Add report at the end of configure
* uatomic-api docs: use the third-person singular
* Add --enable-rcu-debug to configure
* ARM32: use dmb ish (inner shareable domain) for smp barriers
* Cleanup: remove cmm_wmb() from rcu_xchg_pointer and rcu_cmpxchg_pointer
* Fix: uatomic arm32: add missing release barrier before uatomic_xchg
* Tests: Add verbose support to test script
* Fix: add missing CONFIG_RCU_FORCE_SYS_MEMBARRIER to urcu/config.h.in
* Allow forcing the use of sys membarrier
* Fix: rcutorture: work-around signal issue on mac os x
* Fix: rcutorture should register thread using call_rcu
* Fix: add missing backslash in Makefile.am
* Fix: Do not use wildcards in include/Makefile.am
* Bump version to 0.10-pre
* Fix: check for rand_r() in compat-rand.h
* Fix: Move rand-compat to private src dir
* Fix: remove AC_FUNC_MALLOC from configure.ac
* Cleanup: Re-organise source dir
* Cleanup: remove leftover manual pthread detection
* Fix: update ax_pthread macro to handle newer clang
* Update library current version due to adding destroy API
* Fix: Use pthread_self to get threadid on OSX
* Fix: examples: use destroy API for queues/stacks
* Update library age due to new stack/queue destroy API
* Fix: tests: invoke destroy APIs for queues/stacks
* Fix: add missing destroy functions to queues/stack APIs
* Fix: add missing __cds_wfcq_init for LGPL API
* Fix: memory leak on hash table destroy
* Fix: Add failover for platforms without nproc
* Fix: use clock_get_time for caa_get_cycles fallback on MacOSX
* Fix: syscall-compat.h MacOSX support
* Fix: Add solaris-build.md to dist
* rculfhash: Documentation: clarify need for grace period before "re-using"
* Port: build shared libraries in Cygwin
* Port: fix compatibility header for Cygwin
* Add GNU Hurd support to syscall-compat.h
* Add support for aarch64_be
* Fix: urcu-bp: re-initialize list head on library exit
* bootstrap: Standardize on autoreconf -vi
* Harmonize bootstrap script across projects
* Fix: examples make distcheck failure
* wfcqueue: add C++ compatibility API
* Fix: CDS_WFCQ_WOULDBLOCK typing for c++
* Fix: configure.ac: check for possibly required libs for clock_gettime
* Support for NIOS2 architecture
* urcu_ref_get_safe: introduce new API
* Fix: handle reference count overflow
* Fix: compat_futex should work-around futex signal-restart kernel bug
* Support for Xeon-Phi with newer MPSS
* sparc64: allocate membarrier system call number
* hppa: allocate membarrier system call number
* Fix build on non-Linux Debian ports
* Fix: urcu-signal: smp_mb_master() needs registry lock
* Fix: rculfhash only needs to include urcu-pointers.h
* Fix: out-of-tree benchmark/regtest
* Fix: add missing regtest and benchmark files to dist tarball
* Fix: add missing run.sh to benchmark makefile
2015-10-16 Userspace RCU 0.9.0
* Bump soname major to 4
* Cleanup: remove trailing tab
* Fix: Use proper macro to detect stdbool.h
* Configure: Add missing checks
* Port: Add Solaris build instructions
* Fix: regtest outputs valid TAP protocol
* Port: Detect nproc bin name in benchmark scripts
* Port: Add Solaris getcpu support
* Port: Fixes to build system for portability
* Port: Add Solaris support to tests/common/thread-id.h
* Port: Add Solaris support to urcu/syscall-compat.h
* Port: replace bzero() by memset()
* Port: make bootstrap script work on most shell
* tests: rcutorture: use parameters rather than random
* Fix: only define membarrier system call on Linux
* Refactor tests
* Fix: cast caa_cycles_t to unsigned long long
* caa_get_cycles: caa_ prefix for type, use CLOCK_MONOTONIC
* Cleanup: remove trailing whitespaces at EOL
* Cleanup: move generic caa_get_cycles to arch/generic.h
* tile: allocate membarrier system call number
* ia64: allocate membarrier system call number
* aarch64: allocate membarrier system call number
* powerpc64le: use "ppc" architecture
* arm: allocate membarrier system call number
* s390: allocate membarrier system call number
* ppc: allocate membarrier system call number
* lfstack: relax constraints on node re-use
* Fix: format string signedness
* Cleanup: tests: Branch condition evaluates to a garbage value
* Fix: test: unchecked return value
* Fix: test: side-effect in assertion
* x86: allocate membarrier system call number
* urcu-bp: use sys_membarrier when available
* Cleanup: urcu: remove unused membarrier "group" parameter
* urcu/ref.h: implement urcu_ref_get_unless_zero()
* Fix: compat_futex: uninitialized ret variable
* Fix: compat_futex_noasync: don't override return value
* Fix: dynamic fallback to compat futex on sys_futex ENOSYS
* Detect RCU read-side overflows
* Detect RCU read-side underflows
* Introduce urcu_assert and registration check
* Fix: volatile in assert()
* Update following changes to sys_membarrier ABI
* uatomic: Specify complete types for atomic function calls
* Cleanup: remove unused return value warning from tests
* Fix: handle sys_futex() FUTEX_WAIT interrupted by signal
* Fix: compat_futex.c: *uaddr should be read as volatile
* Cleanup: cast poll delay return value to void
* tests: Convert unit tests to TAP
* Fix: make benchmark test run in oot build
* Fix: call_rcu_thread() affinity failure
* Cleanup: cast poll delay return value to void
* Cleanup: cast poll delay return value to void
* Cleanup: cast poll delay return value to void
* Cleanup: cast poll delay return value to void
* Cleanup: cast poll() return value to void for delays
* urcu: fix deprecation warning with new glibc
* urcu: add cds_list_for_each_entry_safe_from macro
* Fix: deadlock when thread join is issued in read-side C.S.
* Fix: rename RCU_DEBUG to DEBUG_RCU in urcu-qsbr.h
* Cleanup some c99 pedantic warnings
* Mark braced-groups within expressions with __extension__
* Fix: compat_futex_noasync race condition
* tests: Use stderr redirection for time output
* Fix: use space after rpath for OS X ld
* Fix: move transparent union attribute after union declaration for clang
* Configure: add check for used type
* Configure: add missing check of headers
* Configure: add missing check for funcs: memset, strerror
* Fix: documentation: urcu-pointer.h: s/rcu_dereference_pointer/rcu_dereference/
* urcu-bp/urcu-qsbr: remove unneeded DEBUG_YIELD code
* Fix: call rcu should call internal RCU API
* Fix: silence gcc -Wextra warning
* compiler: use __GNUC__ instead of the undefined __GNUC_MAJOR__
* Fix: lfstack reversed empty/non-empty return value
* lfstack: fix: add missing __cds_lfs_init
* wfstack: add missing union parameters
* Fix: preserve example files' timestamps when copying
* wfstack: implement mutex-free wfstack with transparent union
* wfcqueue: Implement mutex-free wfcqueue head with transparent union
* lfstack: Implement mutex-free stack head with transparent union (v2)
* rculfhash: remove duplicated code
* rculfhash: handle pthread_create failures
* rculfhash: fall back to single-threaded resize on calloc failure
* x86: drop extra semi-colon in caa_cpu_relax
* Cleanup: tests: cast console write return value as void
* Modernize doc using Markdown
* Fix: update automake following README to README.md change
* Modernize README using Markdown
* Fix: incorrect parenthesis in cds_hlist_for_each_entry_safe_2
* Fix: Use after free in rcu_barrier()
* Fix: rcu_barrier(): uninitialized futex field
* call_rcu threads should clear their PAUSED flag when they unpause
* test_urcu_fork: test many fork, with 3 children deep
* Update list of supported architectures in README
* Add support for hppa/PA-RISC architecture
* Use autoconf AM_MAINTAINER_MODE
* Use gcc atomics on aarch64/powerpc64le
* Fix: move wait loop increment before first conditional block
* Fix: high cpu usage in synchronize_rcu with long RCU read-side C.S.
* Fix: out of tree build: doc/examples
* Fix: out of tree build tests/common
* tests/unit: use lib rather than source
* automake: Rename INCLUDES to AM_CPPFLAGS (new name)
* tests regressions: use lib rather than recompile from source
* tests: use common lib rather than recompile compat sources
* urcu tests: use lib rather than compile from source
* urcu mb tests: use lib rather than recompile from source
* urcu signal tests: use library rather than recompile source
* tests: move yield debug to common test library
* tests urcu bp: use lib rather than recompile source
* test_urcu_defer: link on urcu lib rather than recompile source
* tests/benchmark: use urcu qsbr lib rather than recompile from source
* Pass the CC variable to the example Makefiles
* Fix: urcu-bp interaction with threads vs constructors/destructors
* x86 barrier for Xeon Phi: use rsp on x86-64
* Set RCU_HAVE_FENCE to false on Intel Xeon Phi
* Fix undefined NULL pointer arithmetic in hlist
* Cleanup: Check for pthread in Libc
* Cleanup: Android: Do not redefine gettid
* Fix undefined NULL pointer arithmetic
* Android: implement rand_r()
* Android: do not redefine gettid on Android
* Android: add a compat layer for 'syscall.h'
* Android: do not link pthread on Android
* Android: configure.ac Android check
* Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2
* rculfhash: document max_nr_buckets = 0
* Library major version number (soname) increment to 3
* Fix: tls-compat multi-lib conflict
* Use cross compiler for doc examples
* Add lttng-dev mailing list to readme
* wfcqueue: remove misleading comment
* gcc warning fixes: -Wsign-compare and -Wextra
* Fix: urcu-qsbr: reversed logic on RCU_DEBUG
* Fix: urcu-bp segfault in glibc pthread_kill()
* Fix urcu-bp: don't move registry
* Fix: compat futex duplicated lock and completion
* Fix: i386 compat code duplicated mutex instances
* Fix: urcu-bp: Bulletproof RCU arena resize bug
* Fix: test_mutex.c uninitialized mutex
2013-09-06 Userspace RCU 0.8.0
* Fix: hash table growth (for small tables) should be limited
* Fix: doc/examples cross-build
* Introduce URCU_INLINE_SMALL_FUNCTIONS
* Add missing tests/common/Makefile.am
* README: document make check/regtest/bench
* tests: split in check, regtest and bench targets
* Cleanup: doc/examples makefile
* Fix: doc/examples VPATH build
* doc/examples: Move the LIBS after the OBJECTS in the Makefile
* Document build work-around on MacOS X
* Fix tests: use of uninitialized variables
* test_urcu_hash*: initialize TLS seeds
* doc/examples: cds_lfht_for_each_entry_duplicate
* doc/examples: cds_lfht_lookup
* doc/examples: cds_lfht_destroy
* doc/examples: cds_lfht_add_replace
* doc/examples: cds_lfht_add_unique
* doc/examples: cds_lfht_add/cds_lfht_del
* doc/examples: add rculfqueue example
* doc/examples: add synchronize_rcu()
* doc/examples: add bp flavor
* doc/examples: add dist toplevel makefile
* doc/examples: add membarrier flavor
* doc/examples: document call_rcu()
* doc/examples: update qsbr example
* urcu signal: remove assertion on exit
* doc/examples: signal flavor
* doc/examples: add mb flavor
* doc/examples: update qsbr
* doc/examples: introduce urcu-flavors examples directory
* doc/examples: enhance rcu-flavor-qsbr example
* doc/examples: rename qsbr-minimal to rcu-flavor-qsbr
* doc/examples: automake stop on error
* doc/examples: hlist
* hlist/rcuhlist update
* doc/examples: fix typo in list example
* rcuhlist: make pointer stores atomic
* hlist, rcuhlist: cleanup coding style
* doc/examples: lfstack
* doc/examples: update cds_wfs_pop_all_blocking
* doc/examples: cds_wfs_pop_all_blocking
* doc/examples: cds_wfs_pop
* doc/examples: add missing Makefile
* doc/examples: cds_wfs_push
* doc/wfcqueue: cds_wfcq_splice
* doc/examples: add cds_wfcq_dequeue
* doc/examples: wfcq needs to link against urcu-common
* doc/examples: update queue comment
* doc/examples: fix make clean
* gitignore: add qsbr-minimal
* doc/examples: cds_wfcq_enqueue
* doc/examples: Move LIBS to each makefile
* doc/examples: cds_list_for_each_rcu
* doc/examples: cds_list_for_each_entry_rcu
* doc/examples: cds_list_replace_rcu
* doc/examples: cds_list_add_tail_rcu
* doc/examples: cds_list_del_rcu
* doc/examples: cds_list_add_rcu
* rculist: ensure atomic updates of next pointers
* rculist: implement cds_list_add_tail_rcu
* rculist.h and list.h style cleanup
* example makefile: add missing cd ..
* Update gitignore
* Fix: examples Makefile on FreeBSD
* hash table test: don't redefine CACHE_LINE_SIZE
* tests: use thread-id.h wrapper
* Implement thread-id.h wrapper
* tests: add missing unsigned long casts to pthread_self()
* Fix: don't build examples in static builds
* Add QSBR minimal example
* compiler.h: implement CAA_ARRAY_SIZE()
* document rcu barrier
* rcu barrier: handle OOM die urcu_die
* Implement rcu_barrier()
* rculfhash: document destroy context limitations
* Add MIPS to README
* Update README
* Update README testing info about FreeBSD
* test: fix api.h missing if brackets
* tests: fix incorrect counter
* Fix: membarrier fallback symbol conflict
* Fix: Use a filled signal mask to disable all signals
* urcu-bp: introduce struct urcu_gp
* Fix: struct urcu_gp broke multiflavor
* Cleanup test usage printout
* wfstack tests: use pop "last" state info
* wfstack: return whether pop is popping the last element
* wfcqueue tests: use dequeue empty state
* wfcqueue: return whether dequeue is dequeuing last element
* urcu: avoid false sharing for rcu_gp_ctr
* urcu: make the code of urcu-qsbr as normal urcu
* rculfhash: detect if resize/destroy are called within RCU read-side C.S.
* Documentation: rculfhash: cds_lfht_resize not within read-side C.S.
* fix: rculfhash don't change qsbr online state
* Add rcu_read_ongoing() API to each urcu flavor
* Add "sparc" host cpu to configure.ac
* futex: include syscall.h instead of sys/syscall.h
* Add tab to output in order to allow easy nesting of tables.
* Remove urcu-api-list.sh from dist tarball
* Add urcu-api-list.sh script
* list: implement cds_list_for_each_safe()
* Fix: tests/api.h use cpuset.h
* Fix hurd-i386: move cpuset tests outside of sched_setaffinity conditional
* Fix tests: finer-grained use of CPU_SET, CPU_ZERO and cpu_set_t
* Test for CPU_SET
* Fix build on architectures with HAVE_SCHED_GETCPU but without HAVE_SYSCONF
* README: document that Clang 3.0 (based on LLVM 3.0) is supported
* clang: silence "unused expression result" warning
* rculfhash: add assertions on node alignment
* Spelling cleanups within comments and documentation
* Fix configure checks for Tile
* uatomic: style fix
* doc/cds-api.txt: expand documentation
* README: document each API file
* README: reorganize
* Add compilation support for the TileGX architecture
* wfstack: add nonblocking to _LGPL_SOURCE API
* Discourage use of pthread_atfork() for call_rcu handlers
* Fix call_rcu fork handling
* test: fork handling
* rculfhash: add cds_lfht_replace to the write operations in the comments
* urcu: fix comments for cds_list_for_each_prev()
* documentation: fix rcu-api.txt duplicates
* test wfcq: remove unneeded urcu.h include
* test wfs: remove unneeded urcu.h include
* urcu: declare test_urcu_multiflavor functions
* urcu: remove the wrong comma
* wfstack: implement nonblocking pop and next
* wfcqueue: document first/next return values
* wfstack: update comments about cds_wfs_empty/first being wait-free
* wfstack API: rename cds_wfs_first_blocking to cds_wfs_first
* wfstack test: test if number of push to empty vs pop_all match
* wfstack: document first/next return values
* test wfstack: enforce external mutex if needed by default
* test wfcqueue: enforce external mutex if needed by default
* urcu-mb/signal/membarrier: batch concurrent synchronize_rcu()
* urcu-wait: move queue management code into urcu-wait.h
* urcu-wait: move wait code into separate file
* urcu-qsbr: batch concurrent synchronize_rcu()
* tests: use standard malloc/free for synchronize_rcu()
* urcu-bp: move quiescent threads to separate list
* urcu-mb/signal/membarrier: move quiescent threads to separate list
* urcu-qsbr: move offline threads to separate list
* urcu-bp: improve 2-phase wait scheme
* urcu-mb/signal/membarrier: improve 2-phase wait scheme
* urcu-qsbr: improve 2-phase wait scheme
* wfcqueue: implement mutex-free splice
* wfcqueue: document empty criterion
* urcu-call-rcu: use wait-free splice return value
* test wfcqueue: add tests for queue state return value
* wfcqueue: enqueue and splice return queue state
* Fix: wfcqueue nonblocking dequeue
* wfcqueue: Fix lock and unlock functions
* runtests: Make path of time binary configurable
* urcu-qsbr: skip Q.S. reporting if already reported
* Fix TLS detection: test with linker, add --disable-compiler-tls
* Cleanup: cast pthread_self() return value to unsigned long
* Fallback mechanism not working on platform where TLS is unsupported
* Revert "Fix: cross-build: configure.ac should use --target, not --host"
* Fix: cross-build: configure.ac should use --target, not --host
* test_urcu_wfcq: add splice and nosync tests
* test_urcu_wfs: cleanup
* test_urcu_lfs: cleanup
* Fix static linking: add missing static for _defer_rcu
* tests: report error value for make check
* Add multiflavor test program
* Fix static linking: fix symbol name namespaces
* Fix static linking: add missing static to thr_defer
* Fix static linking: add missing static
* deprecation: fix build with gcc < 4.5
* wfstack.c: update copyright notice
* Update wfstack copyright notice
* Comment fix: update associated LGPL header name
* Update cds-api.txt following API deprecations
* Deprecate wfqueue
* Deprecate rculfstack
* wfcqueue: introduce nonblocking API
* lfstack: test pop_all and pop
* lfstack: implement empty, pop_all and iterators, document API
* lfstack: implement test
* lfstack: implement lock-free stack
* wfstack: implement pop_all and iteration tests
* wfstack: implement cds_wfs_pop_all and iterators, document API
* rculfhash test: fix trivial memleak and return node leak and errors
* rculfhash: add missing extern
* Cleanup: fix cppcheck errors
* wfcqueue: remove ancient comment
* test_urcu_lfq: remove rcu_defer_register_thread() from test_urcu_lfq
* test_urcu_lfq: test for the proper pointer
* test_urcu_lfs: remove rcu_defer_register_thread() from test_urcu_lfs
* test_urcu_lfs: test for the proper pointer
* wfcqueue: clarify locking usage
* Document APIs in README
* Test cleanup: replace "l" parameter by "loops"
* Add wfcqueue header to cds.h
* Fix: urcu-bp, urcu, urcu-qsbr should include wfcqueue
* Fix: call_rcu list corruption on teardown (documentation)
* call_rcu: remove head field alignement, explain wfcqueue motivation
* wfcqueue: update credits in patch documentation
* wfcqueue documentation: hint at for_each iterators
* Fix urcu-call-rcu-impl.h: false-sharing
* call_rcu: use wfcqueue, eliminate false-sharing
* wfcqueue test
* wfcqueue: implement concurrency-efficient queue
* Ensure that read-side functions meet 10-line LGPL criterion
* tls-compat.h: document sigaltstack(2) limitation
* urcu: add notice to URCU_TLS() for it is not strictly async-signal-safe
* Document sigaltstack(2) limitation
* Documentation: update LICENSE file
2012-08-27 Userspace RCU 0.7.4
* rculfhash API documentation: document destroy RCU read-lock constraint
* Fix: rculfhash should be offline while waiting for resize to complete
* Add missing entry to gitignore
* urcu: move busy-wait code and name it ___cds_wfq_node_sync_next()
* urcu: fix compat_futex_noasync()
* urcu: add hint to DEFINE_URCU_TLS() for compound types
* Fix: CAA_BUILD_BUG_ON should refer to CAA_BUILD_BUG_ON_ZERO
* Add MIPS support
* Compatibility: remove bash-ismsm from test scripts
* Fix inappropriate lib behavior: don't call exit()
* Fix: re-enable compatibility with autoconf < 2.64
* Fix c99 compatibility: use __asm__ and __volatile__ in public headers
* Fix c99 compatibility: use __typeof__ instead of typeof in public headers
* warning fix: tests urcutorture for NetBSD 5
2012-06-01 Userspace RCU 0.7.3
* Fix tests: make dist lib dependency
* Update README for OS supported, tests dependency
* Add CodingStyle to tarball
* Add coding style document
* Test fix: test_perthreadlock uninitialized mutex
* tests: support FreeBSD short "time" args
* freebsd 8.2 fix: define MAP_ANONYMOUS for compatibility
2012-05-24 Userspace RCU 0.7.2
* Fix library compatibility
2012-05-24 Userspace RCU 0.7.1
* fix: uatomic_set return value compile fix for non-x86 arch.
2012-05-21 Userspace RCU 0.7.0
* Cleanup: header comments coding style
* Document uatomic operations
* Update return value of "set" operations
* Fix mremap wrapper for NetBSD 5
* Use urcu/tls-compat.h
* Implement urcu/tls-compat.h
* Add TLS detection m4 macro
* document concurrent data structures
* documentation: refer to rcu-api.txt
* Move API.txt to doc/rcu-api.txt, install in system doc/
* rculfhash: document implied memory barriers
* rculfhash: Ensure future-proof memory barrier semantic consistency
* API cleanup: use "uatomic_*" in cmm_smp_mb__ API
* uatomic: add memory barrier API for and/or/add/sub/inc/sub
* rculfhash: add runhash.sh test script
* rculfhash tests: add missing check
* rculfhash: fix: race between replace and del operations
* rculfhash: replace unneeded rcu_dereference by CMM_LOAD_SHARED
* rculfhash: use do {} while (0) for dbg_printf()
* rculfhash: cleanup typo
* rculfhash: update API comments
* rculfhash: update comments in implementation
* rculfhash tests: add long hash chains tests
* rculfhash tests: add uniqueness test
* rculfhash test: print test name
* rculfhash: stress requirement in documentation
* rculfhash: fix typo
* rculfhash tests: use array of callbacks to modularize
* rculfhash tests: modularize tests
* rculfhash: document ordering guarantees
* rculfhash: document linearizability guarantees
* rculfhash: update removal comment
* Add missing files to .gitignore
* Fix out-of-tree build
* rculfhash: check malloc NULL pointer
* Fix uatomic sign cast
* Remove unused jhash.h file
* Fix: use known license text, fix incorrect FSF address
* Fix: add missing sched.h include in rculfhash.c
* Allow tests to run on architectures without per-cpu call_rcu support
* Hash table test: FreeBSD compatibility fix
* tests: define _GNU_SOURCE instead of __USE_GNU
* RCU lock-free hash table: implement cds_lfht_is_node_deleted()
* Define _GNU_SOURCE to access CPU_ZERO() macro in uClibc
* Install ChangeLog and README into system's doc
* Fix AC_LANG_SOURCE usage: only takes one parameter
* Fix autoconf futex check
* configure.ac: Use AC_LANG_SOURCE for if else macros
* Refresh autoconf files
* Update gitignore
* rculfhash: add comment about hash seed randomness within test program
* readme: state correct GCC dependency for ARM
* rculfhash: remove an invocation of bit_reverse_ulong() when adding
* rculfhash: remove unneeded conversion
* rculfhash: remove unneeded clear_flag()
* cds_lfht_replace: add checks for old/new node hash/value match
* rculfhash: use node instead of iter argument for deletion
* rculfhash: number of logically removed nodes should not appear in API
* Document that flags could be represented on 2 bits
* Add missing REMOVAL_OWNER_FLAG comment to cds_lfht_node comment
* _cds_lfht_del is not used for buckets anymore, remove parameter
* rculfhash: Relax atomicity guarantees required by removal operation
* remove unneeded "return;"
* simplify the deletion for bucket node
* Remove unneeded code
* Cleanup DEFINE_RCU_FLAVOR()
* Add cds_lfht_ prefix to fls_ulong, get_count_order_ulong, get_count_order_u32
* Merge RCU Lock-Free Resizable Hash Table
2011-12-12 Userspace RCU 0.6.7
* Add compat file for test urcu wfs
* Add missing compat file for wfq test
* hlist.h: Add missing stddef.h include for NULL
* call_rcu: Add missing call_rcu_before_fork and
call_rcu_after_fork_parent declarations
* Describe autotools/libtool/automake version dependency
* Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
* Support older autotools
* Apply autoupdate to configure.ac
* Fix build for amd64 environment (for FreeBSD 8.2)
* Add missing rcu_dereference_sym_bp
* Install test scripts in the dist tarball
2011-11-03 Userspace RCU 0.6.6
* qsbr vs call_rcu : remove exit assertion
* Rename likely/unlikely to caa_likely/caa_unlikely
* Reinsert missing test_urcu_*.c files (missing in rename)
* rename test_qsbr to test_urcu_qsbr
* urcu-pointer: fix rcu_set_pointer unset return value
* Enhance API.txt documentation, add to Makefile as EXTRA_DIST
2011-09-29 Userspace RCU 0.6.5
* call_rcu: Document call_rcu requirements
* call_rcu: fix error handling of malloc error
* urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
* urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
* urcu,call_rcu: avoid create call_rcu_data for child when unneed
* urcu,defer_rcu: Make defer_rcu encoding more compact for marker
* urcu_defer: Use cancellation flag instead of pthread_cancel()
* urcu,call_rcu: protects call_rcu_data_list when remove node
* Create default call rcu data upon per-cpu call-rcu teardown
* powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
* cmm: provide lightweight smp_rmb/smp_wmb on PPC
* atomic: provide seq_cst semantics on powerpc
* avoid leaking crdp for failed path
* Return -EEXIST when the old cpu call_rcu_data has not been removed
* protect writing to per_cpu_call_rcu_data[*]
* wake up default call_rcu thread after we move the leftover callbacks
* avoid memory leak in call_rcu_data_free()
* urcu call_rcu: fix use after free()
* use get_cpu_call_rcu_data() for get_call_rcu_data()
* init maxcpus before use
* call_rcu implementation: add missing static
* Document QSBR interaction with mutexes
* urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
* urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
* Pair all_cpu call_rcu create with free
* QSBR: add missing wakeups in synchronize_rcu code
* cmm: do not generate code for smp_rmb/smp_wmb on x86_64
* cmm: let per-arch files provide cmm_smp_* barriers
* Optimize caa_get_cycles() for PowerPC64
* lfq/lfs tests: use call_rcu
* list: Add cds_list_first_entry
* rculfstack/queue: define _LGPL_SOURCE around static header include
* Add __rcu annotation (unimplemented)
* Fix incorrect fsf address in header files
* wfstack: push returns prior stack emptiness state
* Make lf stack push return if the stack was empty
* Document caa_container_of
* urcu-bp: do not call munmap for NULL registry at exit
* urcu libraries can directly use the _LGPL_SOURCE wfqueue
* rculfstack: document "push"
* Add runall.sh to tarball
* Fix build order of liburcu-cds-common
* Fix missing check for SYS_membarrier in map header
* urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
* api: reimplement BUILD_BUG_ON in compiler.h
* test api cleanup: remove unused primitives
* put thread offline while waiting for the init flag
* urcu: move private definitions to .c file
* urcu-bp: move private definitions to .c file
* urcu-qsbr: move private definitions to .c file
* rcutorture: fix rcutorture-qsbr
* wfqueue: fix type-incorrect assignment
* Fix tests Makefile EXTRA_DIST to use api.h
* Fix choice of default flavour in urcu/map/urcu.h
* api: remove list/hlist
* api: remove arch-specific files
* api: make api_gcc.h a superset of the other headers
* tests api: remove atomics
* put thread offline while waiting for the init flag
* urcu: move private definitions to .c file
* urcu-bp: move private definitions to .c file
* urcu-qsbr: move private definitions to .c file
* rcutorture: fix rcutorture-qsbr
* wfqueue: fix type-incorrect assignment
* Use caa_ prefix for min() and max()
2011-07-21 Userspace RCU 0.6.4
* uatomic: Fix ARM build errors in uatomic.
* urcu tests: hold mutex across use of custom allocator.
* Portability fixes to support FreeBSD 8.2.
2011-06-27 Userspace RCU 0.6.3
* uatomic: Fix i386 compatibility build errors in uatomic.
2011-06-13 Userspace RCU 0.6.2
* Fix build on powerpc.
2011-06-13 Userspace RCU 0.6.1
* Add missing headers into release tarball:
urcu-call-rcu-impl.h and urcu-defer-impl.h
2011-06-10 Userspace RCU 0.6.0
* 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
2011-03-04 Userspace RCU 0.5.4
* urcu-bp: Update fork() handling
Introduce
extern void rcu_bp_before_fork(void);
extern void rcu_bp_after_fork_parent(void);
extern void rcu_bp_after_fork_child(void);
to handle fork gracefully. These disable signals and hold
the registry mutex across forks. (this flavor of the liburcu
library ("bp" for "bulletproof") is mainly used by UST, the
user-space tracer).
2011-03-03 Userspace RCU 0.5.3
* Add support for older ARM single-CPU architecturess (pre-ARMv7)
(thanks to Jason Wessel from WindRiver).
* Fix ARMv7 cmm_rmb/cmm_wmb primitives (use a dmb barrier).
* Remove leftover list_t type from urcu/list.h (namespace cleanup).
* urcu_defer: handle malloc error value.
* Update README file to describe urcu interaction with fork() when not
* followed
by an exec() system call.
2010-11-18 Userspace RCU 0.5.2
* Fix renaming error introduced in 0.5.0.
2010-11-18 Userspace RCU 0.5.1
* Fix renaming error introduced in 0.5.0. (incomplete fix)
2010-11-18 Userspace RCU 0.5.0
* Version 0.5.0 changes the API presented by memory model,
architecture abstraction and data structure primitives in
headers. The prefixes are, respectively:
- cmm_ : Concurrent Memory Model
- caa_ : Concurrent Architecture Abstraction
- cds_ : Concurrent Data Structures
2010-03-04 Userspace RCU 0.4.2
* Add generic uatomic ops support.
* Bugfix in urcu-bp. (rare garbage collection bug occurring in
multithreaded environment). Only affects urcu-bp users (UST).
2010-02-12 Userspace RCU 0.4.1
* s390: compilation fix.
2010-01-30 Userspace RCU 0.4.0
* API change: SIGURCU -> SIGRCU
* API changes: standardize on rcu_ prefix.
* API change: urcu_init -> rcu_init.
* urcu/config.h options renamed to CONFIG_RCU_HAVE_FENCE,
CONFIG_RCU_HAVE_FUTEX, CONFIG_RCU_SMP, CONFIG_RCU_COMPAT_ARCH.
((moving from URCU -> RCU).
* library names changes: liburcu becomes the "default" version, using
sys_membarrier() when available, and using liburcu-mb as a
fallback.
* The signal-based liburcu is renamed from liburcu to
liburcu-signal. People previously using the signal-based
"liburcu" will automatically be moved to the "default" liburcu
version.
2009-11-16 Userspace RCU 0.3.1
* Add support for sparcv9 32-bit build.
* Update build system to use --host instead of --target.
2009-11-03 Userspace RCU 0.3.0
* API change for the "deferred work" interface.
2009-10-14 Userspace RCU 0.2.3
* Move to autotools.
* Automated architecture detection, with i386 fallback.
* Detect if NR_futex is on the system, fallback on portable
alternatives.
* Add configure mode for UP-only systems.
2009-10-02 Userspace RCU 0.2.2
* Phases out rcu_publish_content() api.
* Adds type checking to urcu-pointer.h pointer exchange primitives.
2009-10-02 Userspace RCU 0.2.1
* small header dependency fix for rculist.h.
* new "liburcu-bp.so" : "Bulletproof RCU", made especially for
the UST userspace tracer. It's a library that sacrifices a bit
of read-side performance for automatically monitoring thread
creation/removal. See README for details.
2009-10-01 Userspace RCU 0.2
* Clarify usage of rcu_cmpxchg_pointer, rcu_xchg_pointer,
rcu_set_pointer.
2009-09-29 Userspace RCU 0.1
* Initial release.
Generated by dwww version 1.16 on Tue Dec 16 11:18:48 CET 2025.