Version 0.8.6
[userspace-rcu.git] / ChangeLog
1 2014-11-04 Userspace RCU 0.8.6
2 * Fix: silence gcc -Wextra warning
3 * compiler: use __GNUC__ instead of the undefined __GNUC_MAJOR__
4 * Fix: lfstack reversed empty/non-empty return value
5 * lfstack: fix: add missing __cds_lfs_init
6
7 2014-10-21 Userspace RCU 0.8.5
8 * Fix: preserve example files' timestamps when copying
9 * rculfhash: remove duplicated code
10 * rculfhash: handle pthread_create failures
11 * rculfhash: fall back to single-threaded resize on calloc failure
12 * x86: drop extra semi-colon in caa_cpu_relax
13 * Fix: Use after free in rcu_barrier()
14 * Fix: rcu_barrier(): uninitialized futex field
15 * call_rcu threads should clear their PAUSED flag when they unpause
16 * Fix: bring back dummy rcu_bp_exit symbol
17
18 2014-03-08 Userspace RCU 0.8.4
19 * Fix: move wait loop increment before first conditional block
20
21 2014-03-01 Userspace RCU 0.8.3
22 * Fix: high cpu usage in synchronize_rcu with long RCU read-side C.S.
23
24 2014-02-28 Userspace RCU 0.8.2
25 * Fix: out of tree build: doc/examples
26 * Fix: out of tree build tests/common
27 * tests/unit: use lib rather than source
28 * automake: Rename INCLUDES to AM_CPPFLAGS (new name)
29 * tests regressions: use lib rather than recompile from source
30 * tests: use common lib rather than recompile compat sources
31 * urcu tests: use lib rather than compile from source
32 * urcu mb tests: use lib rather than recompile from source
33 * urcu signal tests: use library rather than recompile source
34 * tests: move yield debug to common test library
35 * tests urcu bp: use lib rather than recompile source
36 * test_urcu_defer: link on urcu lib rather than recompile source
37 * tests/benchmark: use urcu qsbr lib rather than recompile from source
38 * Pass the CC variable to the example Makefiles
39 * Fix: urcu-bp interaction with threads vs constructors/destructors
40 * Fix undefined NULL pointer arithmetic
41 * Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2
42 * rculfhash: document max_nr_buckets = 0
43
44 2013-11-12 Userspace RCU 0.8.1
45 * tls-compat: fix comment typo
46 * Keep ABI compatible with already compiled LGPL applications
47 * Fix: tls-compat multi-lib conflict
48 * Use cross compiler for doc examples
49 * gcc warning fixes: -Wsign-compare and -Wextra
50 * Fix: urcu-qsbr: reversed logic on RCU_DEBUG
51 * Fix: urcu-bp segfault in glibc pthread_kill()
52 * Fix urcu-bp: don't move registry
53 * Fix: compat futex duplicated lock and completion
54 * Fix: i386 compat code duplicated mutex instances
55 * Fix: urcu-bp: Bulletproof RCU arena resize bug
56 * Fix: test_mutex.c uninitialized mutex
57
58 2013-09-06 Userspace RCU 0.8.0
59 * Fix: hash table growth (for small tables) should be limited
60 * Fix: doc/examples cross-build
61 * Introduce URCU_INLINE_SMALL_FUNCTIONS
62 * Add missing tests/common/Makefile.am
63 * README: document make check/regtest/bench
64 * tests: split in check, regtest and bench targets
65 * Cleanup: doc/examples makefile
66 * Fix: doc/examples VPATH build
67 * doc/examples: Move the LIBS after the OBJECTS in the Makefile
68 * Document build work-around on MacOS X
69 * Fix tests: use of uninitialized variables
70 * test_urcu_hash*: initialize TLS seeds
71 * doc/examples: cds_lfht_for_each_entry_duplicate
72 * doc/examples: cds_lfht_lookup
73 * doc/examples: cds_lfht_destroy
74 * doc/examples: cds_lfht_add_replace
75 * doc/examples: cds_lfht_add_unique
76 * doc/examples: cds_lfht_add/cds_lfht_del
77 * doc/examples: add rculfqueue example
78 * doc/examples: add synchronize_rcu()
79 * doc/examples: add bp flavor
80 * doc/examples: add dist toplevel makefile
81 * doc/examples: add membarrier flavor
82 * doc/examples: document call_rcu()
83 * doc/examples: update qsbr example
84 * urcu signal: remove assertion on exit
85 * doc/examples: signal flavor
86 * doc/examples: add mb flavor
87 * doc/examples: update qsbr
88 * doc/examples: introduce urcu-flavors examples directory
89 * doc/examples: enhance rcu-flavor-qsbr example
90 * doc/examples: rename qsbr-minimal to rcu-flavor-qsbr
91 * doc/examples: automake stop on error
92 * doc/examples: hlist
93 * hlist/rcuhlist update
94 * doc/examples: fix typo in list example
95 * rcuhlist: make pointer stores atomic
96 * hlist, rcuhlist: cleanup coding style
97 * doc/examples: lfstack
98 * doc/examples: update cds_wfs_pop_all_blocking
99 * doc/examples: cds_wfs_pop_all_blocking
100 * doc/examples: cds_wfs_pop
101 * doc/examples: add missing Makefile
102 * doc/examples: cds_wfs_push
103 * doc/wfcqueue: cds_wfcq_splice
104 * doc/examples: add cds_wfcq_dequeue
105 * doc/examples: wfcq needs to link against urcu-common
106 * doc/examples: update queue comment
107 * doc/examples: fix make clean
108 * gitignore: add qsbr-minimal
109 * doc/examples: cds_wfcq_enqueue
110 * doc/examples: Move LIBS to each makefile
111 * doc/examples: cds_list_for_each_rcu
112 * doc/examples: cds_list_for_each_entry_rcu
113 * doc/examples: cds_list_replace_rcu
114 * doc/examples: cds_list_add_tail_rcu
115 * doc/examples: cds_list_del_rcu
116 * doc/examples: cds_list_add_rcu
117 * rculist: ensure atomic updates of next pointers
118 * rculist: implement cds_list_add_tail_rcu
119 * rculist.h and list.h style cleanup
120 * example makefile: add missing cd ..
121 * Update gitignore
122 * Fix: examples Makefile on FreeBSD
123 * hash table test: don't redefine CACHE_LINE_SIZE
124 * tests: use thread-id.h wrapper
125 * Implement thread-id.h wrapper
126 * tests: add missing unsigned long casts to pthread_self()
127 * Fix: don't build examples in static builds
128 * Add QSBR minimal example
129 * compiler.h: implement CAA_ARRAY_SIZE()
130 * document rcu barrier
131 * rcu barrier: handle OOM die urcu_die
132 * Implement rcu_barrier()
133 * rculfhash: document destroy context limitations
134 * Add MIPS to README
135 * Update README
136 * Update README testing info about FreeBSD
137 * test: fix api.h missing if brackets
138 * tests: fix incorrect counter
139 * Fix: membarrier fallback symbol conflict
140 * Fix: Use a filled signal mask to disable all signals
141 * urcu-bp: introduce struct urcu_gp
142 * Fix: struct urcu_gp broke multiflavor
143 * Cleanup test usage printout
144 * wfstack tests: use pop "last" state info
145 * wfstack: return whether pop is popping the last element
146 * wfcqueue tests: use dequeue empty state
147 * wfcqueue: return whether dequeue is dequeuing last element
148 * urcu: avoid false sharing for rcu_gp_ctr
149 * urcu: make the code of urcu-qsbr as normal urcu
150 * rculfhash: detect if resize/destroy are called within RCU read-side C.S.
151 * Documentation: rculfhash: cds_lfht_resize not within read-side C.S.
152 * fix: rculfhash don't change qsbr online state
153 * Add rcu_read_ongoing() API to each urcu flavor
154 * Add "sparc" host cpu to configure.ac
155 * futex: include syscall.h instead of sys/syscall.h
156 * Add tab to output in order to allow easy nesting of tables.
157 * Remove urcu-api-list.sh from dist tarball
158 * Add urcu-api-list.sh script
159 * list: implement cds_list_for_each_safe()
160 * Fix: tests/api.h use cpuset.h
161 * Fix hurd-i386: move cpuset tests outside of sched_setaffinity conditional
162 * Fix tests: finer-grained use of CPU_SET, CPU_ZERO and cpu_set_t
163 * Test for CPU_SET
164 * Fix build on architectures with HAVE_SCHED_GETCPU but without HAVE_SYSCONF
165 * README: document that Clang 3.0 (based on LLVM 3.0) is supported
166 * clang: silence "unused expression result" warning
167 * rculfhash: add assertions on node alignment
168 * Spelling cleanups within comments and documentation
169 * Fix configure checks for Tile
170 * uatomic: style fix
171 * doc/cds-api.txt: expand documentation
172 * README: document each API file
173 * README: reorganize
174 * Add compilation support for the TileGX architecture
175 * wfstack: add nonblocking to _LGPL_SOURCE API
176 * Discourage use of pthread_atfork() for call_rcu handlers
177 * Fix call_rcu fork handling
178 * test: fork handling
179 * rculfhash: add cds_lfht_replace to the write operations in the comments
180 * urcu: fix comments for cds_list_for_each_prev()
181 * documentation: fix rcu-api.txt duplicates
182 * test wfcq: remove unneeded urcu.h include
183 * test wfs: remove unneeded urcu.h include
184 * urcu: declare test_urcu_multiflavor functions
185 * urcu: remove the wrong comma
186 * wfstack: implement nonblocking pop and next
187 * wfcqueue: document first/next return values
188 * wfstack: update comments about cds_wfs_empty/first being wait-free
189 * wfstack API: rename cds_wfs_first_blocking to cds_wfs_first
190 * wfstack test: test if number of push to empty vs pop_all match
191 * wfstack: document first/next return values
192 * test wfstack: enforce external mutex if needed by default
193 * test wfcqueue: enforce external mutex if needed by default
194 * urcu-mb/signal/membarrier: batch concurrent synchronize_rcu()
195 * urcu-wait: move queue management code into urcu-wait.h
196 * urcu-wait: move wait code into separate file
197 * urcu-qsbr: batch concurrent synchronize_rcu()
198 * tests: use standard malloc/free for synchronize_rcu()
199 * urcu-bp: move quiescent threads to separate list
200 * urcu-mb/signal/membarrier: move quiescent threads to separate list
201 * urcu-qsbr: move offline threads to separate list
202 * urcu-bp: improve 2-phase wait scheme
203 * urcu-mb/signal/membarrier: improve 2-phase wait scheme
204 * urcu-qsbr: improve 2-phase wait scheme
205 * wfcqueue: implement mutex-free splice
206 * wfcqueue: document empty criterion
207 * urcu-call-rcu: use wait-free splice return value
208 * test wfcqueue: add tests for queue state return value
209 * wfcqueue: enqueue and splice return queue state
210 * Fix: wfcqueue nonblocking dequeue
211 * wfcqueue: Fix lock and unlock functions
212 * runtests: Make path of time binary configurable
213 * urcu-qsbr: skip Q.S. reporting if already reported
214 * Fix TLS detection: test with linker, add --disable-compiler-tls
215 * Cleanup: cast pthread_self() return value to unsigned long
216 * Fallback mechanism not working on platform where TLS is unsupported
217 * Revert "Fix: cross-build: configure.ac should use --target, not --host"
218 * Fix: cross-build: configure.ac should use --target, not --host
219 * test_urcu_wfcq: add splice and nosync tests
220 * test_urcu_wfs: cleanup
221 * test_urcu_lfs: cleanup
222 * Fix static linking: add missing static for _defer_rcu
223 * tests: report error value for make check
224 * Add multiflavor test program
225 * Fix static linking: fix symbol name namespaces
226 * Fix static linking: add missing static to thr_defer
227 * Fix static linking: add missing static
228 * deprecation: fix build with gcc < 4.5
229 * wfstack.c: update copyright notice
230 * Update wfstack copyright notice
231 * Comment fix: update associated LGPL header name
232 * Update cds-api.txt following API deprecations
233 * Deprecate wfqueue
234 * Deprecate rculfstack
235 * wfcqueue: introduce nonblocking API
236 * lfstack: test pop_all and pop
237 * lfstack: implement empty, pop_all and iterators, document API
238 * lfstack: implement test
239 * lfstack: implement lock-free stack
240 * wfstack: implement pop_all and iteration tests
241 * wfstack: implement cds_wfs_pop_all and iterators, document API
242 * rculfhash test: fix trivial memleak and return node leak and errors
243 * rculfhash: add missing extern
244 * Cleanup: fix cppcheck errors
245 * wfcqueue: remove ancient comment
246 * test_urcu_lfq: remove rcu_defer_register_thread() from test_urcu_lfq
247 * test_urcu_lfq: test for the proper pointer
248 * test_urcu_lfs: remove rcu_defer_register_thread() from test_urcu_lfs
249 * test_urcu_lfs: test for the proper pointer
250 * wfcqueue: clarify locking usage
251 * Document APIs in README
252 * Test cleanup: replace "l" parameter by "loops"
253 * Add wfcqueue header to cds.h
254 * Fix: urcu-bp, urcu, urcu-qsbr should include wfcqueue
255 * Fix: call_rcu list corruption on teardown (documentation)
256 * call_rcu: remove head field alignement, explain wfcqueue motivation
257 * wfcqueue: update credits in patch documentation
258 * wfcqueue documentation: hint at for_each iterators
259 * Fix urcu-call-rcu-impl.h: false-sharing
260 * call_rcu: use wfcqueue, eliminate false-sharing
261 * wfcqueue test
262 * wfcqueue: implement concurrency-efficient queue
263 * Ensure that read-side functions meet 10-line LGPL criterion
264 * tls-compat.h: document sigaltstack(2) limitation
265 * urcu: add notice to URCU_TLS() for it is not strictly async-signal-safe
266 * Document sigaltstack(2) limitation
267 * Documentation: update LICENSE file
268
269 2012-08-27 Userspace RCU 0.7.4
270 * rculfhash API documentation: document destroy RCU read-lock constraint
271 * Fix: rculfhash should be offline while waiting for resize to complete
272 * Add missing entry to gitignore
273 * urcu: move busy-wait code and name it ___cds_wfq_node_sync_next()
274 * urcu: fix compat_futex_noasync()
275 * urcu: add hint to DEFINE_URCU_TLS() for compound types
276 * Fix: CAA_BUILD_BUG_ON should refer to CAA_BUILD_BUG_ON_ZERO
277 * Add MIPS support
278 * Compatibility: remove bash-ismsm from test scripts
279 * Fix inappropriate lib behavior: don't call exit()
280 * Fix: re-enable compatibility with autoconf < 2.64
281 * Fix c99 compatibility: use __asm__ and __volatile__ in public headers
282 * Fix c99 compatibility: use __typeof__ instead of typeof in public headers
283 * warning fix: tests urcutorture for NetBSD 5
284
285 2012-06-01 Userspace RCU 0.7.3
286 * Fix tests: make dist lib dependency
287 * Update README for OS supported, tests dependency
288 * Add CodingStyle to tarball
289 * Add coding style document
290 * Test fix: test_perthreadlock uninitialized mutex
291 * tests: support FreeBSD short "time" args
292 * freebsd 8.2 fix: define MAP_ANONYMOUS for compatibility
293
294 2012-05-24 Userspace RCU 0.7.2
295 * Fix library compatibility
296
297 2012-05-24 Userspace RCU 0.7.1
298 * fix: uatomic_set return value compile fix for non-x86 arch.
299
300 2012-05-21 Userspace RCU 0.7.0
301 * Cleanup: header comments coding style
302 * Document uatomic operations
303 * Update return value of "set" operations
304 * Fix mremap wrapper for NetBSD 5
305 * Use urcu/tls-compat.h
306 * Implement urcu/tls-compat.h
307 * Add TLS detection m4 macro
308 * document concurrent data structures
309 * documentation: refer to rcu-api.txt
310 * Move API.txt to doc/rcu-api.txt, install in system doc/
311 * rculfhash: document implied memory barriers
312 * rculfhash: Ensure future-proof memory barrier semantic consistency
313 * API cleanup: use "uatomic_*" in cmm_smp_mb__ API
314 * uatomic: add memory barrier API for and/or/add/sub/inc/sub
315 * rculfhash: add runhash.sh test script
316 * rculfhash tests: add missing check
317 * rculfhash: fix: race between replace and del operations
318 * rculfhash: replace unneeded rcu_dereference by CMM_LOAD_SHARED
319 * rculfhash: use do {} while (0) for dbg_printf()
320 * rculfhash: cleanup typo
321 * rculfhash: update API comments
322 * rculfhash: update comments in implementation
323 * rculfhash tests: add long hash chains tests
324 * rculfhash tests: add uniqueness test
325 * rculfhash test: print test name
326 * rculfhash: stress requirement in documentation
327 * rculfhash: fix typo
328 * rculfhash tests: use array of callbacks to modularize
329 * rculfhash tests: modularize tests
330 * rculfhash: document ordering guarantees
331 * rculfhash: document linearizability guarantees
332 * rculfhash: update removal comment
333 * Add missing files to .gitignore
334 * Fix out-of-tree build
335 * rculfhash: check malloc NULL pointer
336 * Fix uatomic sign cast
337 * Remove unused jhash.h file
338 * Fix: use known license text, fix incorrect FSF address
339 * Fix: add missing sched.h include in rculfhash.c
340 * Allow tests to run on architectures without per-cpu call_rcu support
341 * Hash table test: FreeBSD compatibility fix
342 * tests: define _GNU_SOURCE instead of __USE_GNU
343 * RCU lock-free hash table: implement cds_lfht_is_node_deleted()
344 * Define _GNU_SOURCE to access CPU_ZERO() macro in uClibc
345 * Install ChangeLog and README into system's doc
346 * Fix AC_LANG_SOURCE usage: only takes one parameter
347 * Fix autoconf futex check
348 * configure.ac: Use AC_LANG_SOURCE for if else macros
349 * Refresh autoconf files
350 * Update gitignore
351 * rculfhash: add comment about hash seed randomness within test program
352 * readme: state correct GCC dependency for ARM
353 * rculfhash: remove an invocation of bit_reverse_ulong() when adding
354 * rculfhash: remove unneeded conversion
355 * rculfhash: remove unneeded clear_flag()
356 * cds_lfht_replace: add checks for old/new node hash/value match
357 * rculfhash: use node instead of iter argument for deletion
358 * rculfhash: number of logically removed nodes should not appear in API
359 * Document that flags could be represented on 2 bits
360 * Add missing REMOVAL_OWNER_FLAG comment to cds_lfht_node comment
361 * _cds_lfht_del is not used for buckets anymore, remove parameter
362 * rculfhash: Relax atomicity guarantees required by removal operation
363 * remove unneeded "return;"
364 * simplify the deletion for bucket node
365 * Remove unneeded code
366 * Cleanup DEFINE_RCU_FLAVOR()
367 * Add cds_lfht_ prefix to fls_ulong, get_count_order_ulong, get_count_order_u32
368 * Merge RCU Lock-Free Resizable Hash Table
369
370 2011-12-12 Userspace RCU 0.6.7
371 * Add compat file for test urcu wfs
372 * Add missing compat file for wfq test
373 * hlist.h: Add missing stddef.h include for NULL
374 * call_rcu: Add missing call_rcu_before_fork and
375 call_rcu_after_fork_parent declarations
376 * Describe autotools/libtool/automake version dependency
377 * Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
378 * Support older autotools
379 * Apply autoupdate to configure.ac
380 * Fix build for amd64 environment (for FreeBSD 8.2)
381 * Add missing rcu_dereference_sym_bp
382 * Install test scripts in the dist tarball
383
384 2011-11-03 Userspace RCU 0.6.6
385 * qsbr vs call_rcu : remove exit assertion
386 * Rename likely/unlikely to caa_likely/caa_unlikely
387 * Reinsert missing test_urcu_*.c files (missing in rename)
388 * rename test_qsbr to test_urcu_qsbr
389 * urcu-pointer: fix rcu_set_pointer unset return value
390 * Enhance API.txt documentation, add to Makefile as EXTRA_DIST
391
392 2011-09-29 Userspace RCU 0.6.5
393 * call_rcu: Document call_rcu requirements
394 * call_rcu: fix error handling of malloc error
395 * urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
396 * urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
397 * urcu,call_rcu: avoid create call_rcu_data for child when unneed
398 * urcu,defer_rcu: Make defer_rcu encoding more compact for marker
399 * urcu_defer: Use cancellation flag instead of pthread_cancel()
400 * urcu,call_rcu: protects call_rcu_data_list when remove node
401 * Create default call rcu data upon per-cpu call-rcu teardown
402 * powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
403 * cmm: provide lightweight smp_rmb/smp_wmb on PPC
404 * atomic: provide seq_cst semantics on powerpc
405 * avoid leaking crdp for failed path
406 * Return -EEXIST when the old cpu call_rcu_data has not been removed
407 * protect writing to per_cpu_call_rcu_data[*]
408 * wake up default call_rcu thread after we move the leftover callbacks
409 * avoid memory leak in call_rcu_data_free()
410 * urcu call_rcu: fix use after free()
411 * use get_cpu_call_rcu_data() for get_call_rcu_data()
412 * init maxcpus before use
413 * call_rcu implementation: add missing static
414 * Document QSBR interaction with mutexes
415 * urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
416 * urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
417 * Pair all_cpu call_rcu create with free
418 * QSBR: add missing wakeups in synchronize_rcu code
419 * cmm: do not generate code for smp_rmb/smp_wmb on x86_64
420 * cmm: let per-arch files provide cmm_smp_* barriers
421 * Optimize caa_get_cycles() for PowerPC64
422 * lfq/lfs tests: use call_rcu
423 * list: Add cds_list_first_entry
424 * rculfstack/queue: define _LGPL_SOURCE around static header include
425 * Add __rcu annotation (unimplemented)
426 * Fix incorrect fsf address in header files
427 * wfstack: push returns prior stack emptiness state
428 * Make lf stack push return if the stack was empty
429 * Document caa_container_of
430 * urcu-bp: do not call munmap for NULL registry at exit
431 * urcu libraries can directly use the _LGPL_SOURCE wfqueue
432 * rculfstack: document "push"
433 * Add runall.sh to tarball
434 * Fix build order of liburcu-cds-common
435 * Fix missing check for SYS_membarrier in map header
436 * urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
437 * api: reimplement BUILD_BUG_ON in compiler.h
438 * test api cleanup: remove unused primitives
439 * put thread offline while waiting for the init flag
440 * urcu: move private definitions to .c file
441 * urcu-bp: move private definitions to .c file
442 * urcu-qsbr: move private definitions to .c file
443 * rcutorture: fix rcutorture-qsbr
444 * wfqueue: fix type-incorrect assignment
445 * Fix tests Makefile EXTRA_DIST to use api.h
446 * Fix choice of default flavour in urcu/map/urcu.h
447 * api: remove list/hlist
448 * api: remove arch-specific files
449 * api: make api_gcc.h a superset of the other headers
450 * tests api: remove atomics
451 * put thread offline while waiting for the init flag
452 * urcu: move private definitions to .c file
453 * urcu-bp: move private definitions to .c file
454 * urcu-qsbr: move private definitions to .c file
455 * rcutorture: fix rcutorture-qsbr
456 * wfqueue: fix type-incorrect assignment
457 * Use caa_ prefix for min() and max()
458
459 2011-07-21 Userspace RCU 0.6.4
460 * uatomic: Fix ARM build errors in uatomic.
461 * urcu tests: hold mutex across use of custom allocator.
462 * Portability fixes to support FreeBSD 8.2.
463
464 2011-06-27 Userspace RCU 0.6.3
465 * uatomic: Fix i386 compatibility build errors in uatomic.
466
467 2011-06-13 Userspace RCU 0.6.2
468 * Fix build on powerpc.
469
470 2011-06-13 Userspace RCU 0.6.1
471 * Add missing headers into release tarball:
472 urcu-call-rcu-impl.h and urcu-defer-impl.h
473
474 2011-06-10 Userspace RCU 0.6.0
475 * Added call_rcu() support, graciously contributed by Paul E. McKenney.
476 * Added urcu/cds.h and merged all "Concurrent Data Containers" (CDS)
477 into a single .so: liburcu-cds.so to have a single header/shared
478 object holding all concurrency-aware data containers. It provides
479 support for RCU lists, queues and stacks at the moment.
480 * liburcu 0.6.0 now allows linking a single application with multiple
481 flavors of RCU. This required a library API change which is
482 incompatible with older 0.5.x liburcu. The .so version number
483 is therefore bumped from 0 to 1 (e.g. liburcu.so.1).
484 * Added "atfork" handling API, documented in README. Only useful for
485 processes using fork() without following exec().
486 * Renaming the following files, keeping the old files (producing a
487 compiler warning):
488 urcu/uatomic_arch.h -> urcu/uatomic.h
489 urcu/urcu-futex.h -> urcu/futex.h
490 urcu/urcu_ref.h -> urcu/ref.h
491
492 2011-03-04 Userspace RCU 0.5.4
493 * urcu-bp: Update fork() handling
494
495 Introduce
496
497 extern void rcu_bp_before_fork(void);
498 extern void rcu_bp_after_fork_parent(void);
499 extern void rcu_bp_after_fork_child(void);
500
501 to handle fork gracefully. These disable signals and hold
502 the registry mutex across forks. (this flavor of the liburcu
503 library ("bp" for "bulletproof") is mainly used by UST, the
504 user-space tracer).
505
506 2011-03-03 Userspace RCU 0.5.3
507 * Add support for older ARM single-CPU architecturess (pre-ARMv7)
508 (thanks to Jason Wessel from WindRiver).
509 * Fix ARMv7 cmm_rmb/cmm_wmb primitives (use a dmb barrier).
510 * Remove leftover list_t type from urcu/list.h (namespace cleanup).
511 * urcu_defer: handle malloc error value.
512 * Update README file to describe urcu interaction with fork() when not
513 * followed
514 by an exec() system call.
515
516 2010-11-18 Userspace RCU 0.5.2
517 * Fix renaming error introduced in 0.5.0.
518
519 2010-11-18 Userspace RCU 0.5.1
520 * Fix renaming error introduced in 0.5.0. (incomplete fix)
521
522 2010-11-18 Userspace RCU 0.5.0
523 * Version 0.5.0 changes the API presented by memory model,
524 architecture abstraction and data structure primitives in
525 headers. The prefixes are, respectively:
526 - cmm_ : Concurrent Memory Model
527 - caa_ : Concurrent Architecture Abstraction
528 - cds_ : Concurrent Data Structures
529
530 2010-03-04 Userspace RCU 0.4.2
531 * Add generic uatomic ops support.
532 * Bugfix in urcu-bp. (rare garbage collection bug occurring in
533 multithreaded environment). Only affects urcu-bp users (UST).
534
535 2010-02-12 Userspace RCU 0.4.1
536 * s390: compilation fix.
537
538 2010-01-30 Userspace RCU 0.4.0
539 * API change: SIGURCU -> SIGRCU
540 * API changes: standardize on rcu_ prefix.
541 * API change: urcu_init -> rcu_init.
542 * urcu/config.h options renamed to CONFIG_RCU_HAVE_FENCE,
543 CONFIG_RCU_HAVE_FUTEX, CONFIG_RCU_SMP, CONFIG_RCU_COMPAT_ARCH.
544 ((moving from URCU -> RCU).
545 * library names changes: liburcu becomes the "default" version, using
546 sys_membarrier() when available, and using liburcu-mb as a
547 fallback.
548 * The signal-based liburcu is renamed from liburcu to
549 liburcu-signal. People previously using the signal-based
550 "liburcu" will automatically be moved to the "default" liburcu
551 version.
552
553 2009-11-16 Userspace RCU 0.3.1
554 * Add support for sparcv9 32-bit build.
555 * Update build system to use --host instead of --target.
556
557 2009-11-03 Userspace RCU 0.3.0
558 * API change for the "deferred work" interface.
559
560 2009-10-14 Userspace RCU 0.2.3
561 * Move to autotools.
562 * Automated architecture detection, with i386 fallback.
563 * Detect if NR_futex is on the system, fallback on portable
564 alternatives.
565 * Add configure mode for UP-only systems.
566
567 2009-10-02 Userspace RCU 0.2.2
568 * Phases out rcu_publish_content() api.
569 * Adds type checking to urcu-pointer.h pointer exchange primitives.
570
571 2009-10-02 Userspace RCU 0.2.1
572 * small header dependency fix for rculist.h.
573 * new "liburcu-bp.so" : "Bulletproof RCU", made especially for
574 the UST userspace tracer. It's a library that sacrifices a bit
575 of read-side performance for automatically monitoring thread
576 creation/removal. See README for details.
577
578 2009-10-01 Userspace RCU 0.2
579 * Clarify usage of rcu_cmpxchg_pointer, rcu_xchg_pointer,
580 rcu_set_pointer.
581
582 2009-09-29 Userspace RCU 0.1
583 * Initial release.
This page took 0.045544 seconds and 4 git commands to generate.