README: describe fork() interaction
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 3 Mar 2011 15:05:48 +0000 (10:05 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 3 Mar 2011 15:05:48 +0000 (10:05 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
README

diff --git a/README b/README
index 10406f79f9b33b797e794ca463d97a5c7cf0378f..ec0d6a22b79c165a87cac300c6964e846f79c5a8 100644 (file)
--- 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.
This page took 0.024312 seconds and 4 git commands to generate.