From: Mathieu Desnoyers Date: Fri, 23 Sep 2022 17:55:03 +0000 (-0400) Subject: Disable signals in URCU background threads X-Git-Tag: v0.14.0~15 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=ea3a28a3f71dd02fb34ed4e3108f93275dbef89a;hp=ea3a28a3f71dd02fb34ed4e3108f93275dbef89a;p=urcu.git Disable signals in URCU background threads Applications using signalfd depend on signals being blocked in all threads of the process, otherwise threads with unblocked signals can receive them and starve the signalfd. While some threads in URCU do block signals (e.g. workqueue worker for rculfhash), the call_rcu, defer_rcu, and rculfhash partition_resize_helper threads do not. Always block all signals before creating threads, and only unblock SIGRCU when registering a urcu-signal thread. Restore the SIGRCU signal to its pre-registration blocked state on unregistration. For rculfhash, cds_lfht_worker_init can be removed, because its only effect is to block all signals except SIGRCU. Blocking all signals is already done by the workqueue code, and unbloking SIGRCU is now done by the urcu signal flavor thread regisration. Co-developed-by: Eric Wong Signed-off-by: Eric Wong Signed-off-by: Mathieu Desnoyers Change-Id: If78346b15bdc287417b992a8963098c6ea0dc7d2 ---