svn commit: r251194 - head/lib/libc/sys

Jilles Tjoelker jilles at FreeBSD.org
Fri May 31 20:46:08 UTC 2013


Author: jilles
Date: Fri May 31 20:46:08 2013
New Revision: 251194
URL: http://svnweb.freebsd.org/changeset/base/251194

Log:
  fork(2): Add information about fork() in multi-threaded processes.
  
  There is nothing about pthread_atfork(3) or extensions like calling
  malloc(3) in the child process as this may be unreliable or broken.

Modified:
  head/lib/libc/sys/fork.2

Modified: head/lib/libc/sys/fork.2
==============================================================================
--- head/lib/libc/sys/fork.2	Fri May 31 20:11:07 2013	(r251193)
+++ head/lib/libc/sys/fork.2	Fri May 31 20:46:08 2013	(r251194)
@@ -73,6 +73,17 @@ are set to 0; see
 .It
 All interval timers are cleared; see
 .Xr setitimer 2 .
+.It
+The child process has only one thread,
+corresponding to the calling thread in the parent process.
+If the process has more than one thread,
+locks and other resources held by the other threads are not released
+and therefore only async-signal-safe functions
+(see
+.Xr sigaction 2 )
+are guaranteed to work in the child process until a call to
+.Xr execve 2
+or a similar function.
 .El
 .Sh RETURN VALUES
 Upon successful completion,
@@ -124,6 +135,7 @@ There is insufficient swap space for the
 .Xr rfork 2 ,
 .Xr setitimer 2 ,
 .Xr setrlimit 2 ,
+.Xr sigaction 2 ,
 .Xr vfork 2 ,
 .Xr wait 2
 .Sh HISTORY


More information about the svn-src-head mailing list