From: Mathieu Desnoyers Date: Wed, 19 Dec 2012 00:31:21 +0000 (-0500) Subject: Fix call_rcu fork handling X-Git-Tag: v0.8.0~119 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;ds=sidebyside;h=e85451a199f995091d2f740b6fd0ad2cd8fc2dc7;hp=e85451a199f995091d2f740b6fd0ad2cd8fc2dc7;p=urcu.git Fix call_rcu fork handling Fix call_rcu fork handling by putting all call_rcu threads in a quiescent state before fork (paused state), and unpausing them when the parent returns from fork. On the child, everything will run fine as long as we don't issue fork() from a call_rcu callback. Side-note: pthread_atfork is not appropriate when using with multithread and malloc/free. The glibc malloc implementation sadly expects that all malloc/free are executed from the context of a single thread while pthread atfork handlers are running, which leads to interesting hang in glibc. Signed-off-by: Mathieu Desnoyers ---