Phase 1 of deprecating liburcu-signal
authorOlivier Dion <odion@efficios.com>
Mon, 14 Aug 2023 20:40:30 +0000 (16:40 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 18 Aug 2023 20:16:09 +0000 (16:16 -0400)
commit97d13221f8a10e9ba38821dea2c2ff299d166c71
treee5d8f8c79d0671e9cdc4062662fb19072d5e55d3
parent7e60fda72a3501c52b69bb042c0947817cbe1acc
Phase 1 of deprecating liburcu-signal

The first phase of liburcu-signal deprecation consists of implementing
it in term of liburcu-mb. In other words, liburcu-signal is identical to
liburcu-mb at the exception of the function symbols and public header
files.

This is done by:

  1) Removing the RCU_SIGNAL specific code in urcu.c

  2) Making the RCU_MB specific code also specific to RCU_SIGNAL in
  urcu.c

  3) Rewriting _urcu_signal_read_unlock_update_and_wakeup to use a
  atomic store with CMM_SEQ_CST instead of a store CMM_RELAXED with
  cmm_barrier() around it. We could keep the explicit barriers, but that
  would require to add some cmm_annotate annotations. Therefore, to be
  less intrusive in a public header file, simply use the CMM_SEQ_CST
  like for the mb flavor.

Change-Id: Ie406f7df2f47da0a9f464df94b968ad9204821f3
Signed-off-by: Olivier Dion <odion@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
README.md
include/urcu/static/urcu-signal.h
src/urcu.c
This page took 0.025781 seconds and 4 git commands to generate.