From: Mathieu Desnoyers Date: Thu, 3 Mar 2011 15:05:48 +0000 (-0500) Subject: README: describe fork() interaction X-Git-Tag: v0.5.3~2 X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=47c5a84f6137e1cb2fcbf448a134a0485d6f102e README: describe fork() interaction Signed-off-by: Mathieu Desnoyers --- diff --git a/README b/README index 10406f7..ec0d6a2 100644 --- a/README +++ b/README @@ -190,3 +190,15 @@ SMP support ./configure --disable-smp-support theoretically yielding slightly better performance. + +Interaction with fork() + + Special care must be taken for applications performing fork() without + any following exec(). This is caused by the fact that Linux only clones + the thread calling fork(), and thus never replicates any of the other + parent thread into the child process. Most liburcu implementations + require that all registrations (as reader, defer_rcu and call_rcu + threads) should be released before a fork() is performed, except for the + rather common scenario where fork() is immediately followed by exec() in + the child process. The only implementation not subject to that rule is + liburcu-bp, which is designed to handle this case.