From: Mathieu Desnoyers Date: Wed, 19 Dec 2012 00:31:21 +0000 (-0500) Subject: Fix call_rcu fork handling X-Git-Tag: v0.6.9~5 X-Git-Url: http://git.liburcu.org/?p=userspace-rcu.git;a=commitdiff_plain;h=483c853e4227f9d0b3ad03f7a4bd8038fe26da89;hp=483c853e4227f9d0b3ad03f7a4bd8038fe26da89 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 ---