urcu:stable-0.9

Last commit made on 2019-05-06
Get this branch:
git clone -b stable-0.9 https://git.launchpad.net/urcu

Branch merges

Branch information

Name:
stable-0.9
Repository:
lp:urcu

Recent commits

7ae2447... by Mathieu Desnoyers on 2019-05-06

Cleanup: update code layout to fix old gcc warning

Some CI jobs show:

urcu-pointer.o
13:46:22 In file included from urcu.c:49:0:
13:46:22 urcu-wait.h:70:9: warning: missing initializer for field 'lock' of 'struct cds_wfs_stack' [-Wmissing-field-initializers]
13:46:22 struct urcu_wait_queue name = URCU_WAIT_QUEUE_HEAD_INIT(name)
13:46:22 ^
13:46:22 urcu.c:150:8: note: in expansion of macro 'DEFINE_URCU_WAIT_QUEUE'
13:46:22 static DEFINE_URCU_WAIT_QUEUE(gp_waiters);
13:46:22 ^
13:46:22 In file included from urcu-wait.h:27:0,
13:46:22 from urcu.c:49:
13:46:22 ../include/urcu/wfstack.h:92:18: note: 'lock' declared here
13:46:22 pthread_mutex_t lock;
13:46:22

Change code layout so not to confuse old gcc.

Signed-off-by: Mathieu Desnoyers <email address hidden>

e6a3c16... by Michael Jeanson <email address hidden> on 2019-04-22

Fix: typo CPPLAGS in examples Makefile

Overriding CPPFLAGS throught the environment was ignored for the
examples.

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

1c96729... by Michael Jeanson <email address hidden> on 2019-03-07

Update dead link in lgpl-relicensing.txt

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

941e445... by Mathieu Desnoyers on 2019-01-14

Version 0.9.6

Signed-off-by: Mathieu Desnoyers <email address hidden>

66ea483... by Michael Jeanson <email address hidden> on 2018-11-23

test_rwlock: Add per-thread count to verbose output

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

6ab2df8... by Michael Jeanson <email address hidden> on 2018-11-23

Add *.exe to gitignore for Cygwin

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

ff98112... by Michael Jeanson <email address hidden> on 2018-11-23

Fix: pthread_rwlock initialization on Cygwin

On Cygwin the PTHREAD_RWLOCK_INITIALIZER macro is not
sufficient to get a properly initialized pthread_rwlock_t
struct. Use the pthread_rwlock_init function instead which
should work on all platforms.

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

44744c8... by Michael Jeanson <email address hidden> on 2018-11-23

Fix: compat_futex_noasync on Cygwin

The futex_noasync compat code uses a weak symbol to share state across
different shared object which is not possible on Windows with the
Portable Executable format. Use the async compat code for both cases.

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>

5f6503c... by Mathieu Desnoyers on 2018-01-23

Version 0.9.5

Signed-off-by: Mathieu Desnoyers <email address hidden>

387346f... by Michael Jeanson <email address hidden> on 2017-07-28

Fix: don't use overlapping mmap mappings on Cygwin

The allocation scheme used by the mmap based RCU hash table is to make a
large unaccessible mapping to reserve memory without allocating it.
Then smaller chunks are allocated by overlapping read/write mappings which
do allocate memory. Deallocation is done by an overlapping unaccessible
mapping.

This scheme was tested on Linux, macOS and Solaris. However, on Cygwin the
mmap wrapper is based on the Windows NtMapViewOfSection API which doesn't
support overlapping mappings.

An alternative to the overlapping mappings is to use mprotect to change the
protection on chunks of the large mapping, read/write to allocate and none
to deallocate. This works perfecty on Cygwin and Solaris but on Linux a
call to madvise is also required to deallocate and it just doesn't work on
macOS.

For this reason, we keep to original scheme on all platforms except Cygwin.

Signed-off-by: Michael Jeanson <email address hidden>
Signed-off-by: Mathieu Desnoyers <email address hidden>