X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=README;h=659511f7c46eba7260e1297ae247efceaa88b7bf;hp=ec0d6a22b79c165a87cac300c6964e846f79c5a8;hb=ef84facf4b0c23bd695ca9300055e3ffc9b56006;hpb=47c5a84f6137e1cb2fcbf448a134a0485d6f102e diff --git a/README b/README index ec0d6a2..659511f 100644 --- a/README +++ b/README @@ -201,4 +201,13 @@ Interaction with fork() 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. + liburcu-bp, which is designed to handle fork() by calling + rcu_bp_before_fork, rcu_bp_after_fork_parent and + rcu_bp_after_fork_child. + + Applications that use call_rcu() and that fork() without + doing an immediate exec() must take special action. The parent + must invoke call_rcu_before_fork() before the fork() and + call_rcu_after_fork_parent() after the fork(). The child + process must invoke call_rcu_after_fork_child(). + These three APIs are suitable for passing to pthread_atfork().