Version 0.5.3
[urcu.git] / README
diff --git a/README b/README
index 10406f79f9b33b797e794ca463d97a5c7cf0378f..b6d2ae48d0b3365ccd0aa4344bc95f24ed6daef3 100644 (file)
--- a/README
+++ b/README
@@ -190,3 +190,17 @@ 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 by requiring a call to
+       synchronize_rcu() following the fork() in the child before any new
+       thread is created.
This page took 0.022983 seconds and 4 git commands to generate.