1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116
|
# SPDX-FileCopyrightText: 2011-2025 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
#
# SPDX-License-Identifier: CC-BY-4.0
2025-11-10 Userspace RCU 0.15.5
* x86: Define cmm_smp_mb() as lock; addl rather than mfence
* Introduce barrier test
* Add test_uatomic to gitignore
* Cleanup: Remove stray space
* benchmark: Add uatomic benchmark
2025-11-04 Userspace RCU 0.15.4
* uatomic: Fix redundant memory barriers for atomic builtin operations
* Cleanup: Remove useless declarations from urcu-qsbr
* src/urcu-bp.c: assert => urcu_posix_assert
* ppc.h: improve ppc64 caa_get_cycles on Darwin
2025-05-14 Userspace RCU 0.15.3
* Fix: Use bitfield static assert with GCC < 7.1.0
* Fix: Allow compile-time checks for GCC 5.1
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.
|