docs/68201: [patch] pthread_atfork(3) man page

Alex Vasylenko lxv at omut.org
Tue Jun 22 15:01:06 UTC 2004


>Number:         68201
>Category:       docs
>Synopsis:       [patch] pthread_atfork(3) man page
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 22 15:00:41 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Alex Vasylenko
>Release:        FreeBSD 5.2-CURRENT i386
>Organization:
>Environment:
System: FreeBSD 5.2-CURRENT #16: Sun Jun 20 09:18:35 EDT 2004


	
>Description:
	pthread_atfork(3) needs a man page, not mentioned in pthread(3)

>How-To-Repeat:
	man 3 pthread_atfork
	
	
>Fix:
	Apply the following patches in /usr/src/share/man/man3:

--- Makefile.orig	Sat Jun  5 11:49:32 2004
+++ Makefile	Tue Jun 22 10:29:40 2004
@@ -142,6 +142,7 @@
 
 .if !defined(NOLIBC_R) || !defined(NOLIBPTHREAD) || !defined(NOLIBTHR)
 PTHREAD_MAN=	pthread.3 \
+		pthread_atfork.3 \
 		pthread_attr.3 \
 		pthread_attr_get_np.3 \
 		pthread_attr_setcreatesuspend_np.3 \


--- pthread.3.orig	Thu Apr  8 19:04:54 2004
+++ pthread.3	Mon Jun 21 23:58:30 2004
@@ -30,7 +30,7 @@
 .\"
 .\" $FreeBSD: src/share/man/man3/pthread.3,v 1.26 2004/04/08 23:04:54 simon Exp $
 .\"
-.Dd January 15, 2004
+.Dd June 21, 2004
 .Dt PTHREAD 3
 .Os
 .Sh NAME
@@ -447,6 +447,15 @@
 .Ss Cleanup Routines
 .Bl -tag -width indent
 .It Xo
+.Ft int
+.Fo pthread_atfork
+.Fa "void \*[lp]*prepare\*[rp]\*[lp]void\*[rp]"
+.Fa "void \*[lp]*parent\*[rp]\*[lp]void\*[rp]"
+.Fa "void \*[lp]*child\*[rp]\*[lp]void\*[rp]"
+.Fc
+.Xc
+Register fork handlers
+.It Xo
 .Ft void
 .Fn pthread_cleanup_pop "int execute"
 .Xc
@@ -472,6 +481,7 @@
 functions and the thread functions.
 Threaded applications are linked with one of these libraries.
 .Sh SEE ALSO
+.Xr pthread_atfork 3 ,
 .Xr pthread_cleanup_pop 3 ,
 .Xr pthread_cleanup_push 3 ,
 .Xr pthread_condattr_destroy 3 ,


--- pthread_atfork.3.orig	Mon Jun 21 23:59:52 2004
+++ pthread_atfork.3	Tue Jun 22 10:48:52 2004
@@ -0,0 +1,77 @@
+.\"
+.\" $FreeBSD: src/share/man/man3/pthread_atfork.3,v 1.0 2004/06/21 15:59:00 xx Exp $
+.\"
+.Dd June 21, 2004
+.Dt PTHREAD_ATFORK 3
+.Os
+.Sh NAME
+.Nm pthread_atfork
+.Nd register fork handlers
+.Sh LIBRARY
+.Lb libpthread
+.Sh SYNOPSIS
+.In pthread.h
+.Ft int
+.Fo pthread_atfork
+.Fa "void \*[lp]*prepare\*[rp]\*[lp]void\*[rp]"
+.Fa "void \*[lp]*parent\*[rp]\*[lp]void\*[rp]"
+.Fa "void \*[lp]*child\*[rp]\*[lp]void\*[rp]"
+.Fc
+.Sh DESCRIPTION
+The
+.Fn pthread_atfork
+function declares fork handlers to be called before and after
+.Xr fork 2 ,
+in the context of the thread that called
+.Xr fork 2 .
+The
+.Fa prepare
+fork handler will be called before
+.Xr fork 2
+processing commences.
+The
+.Fa parent
+fork handle will be called after
+.Xr fork 2
+processing completes in the parent process.
+The
+.Fa child
+fork handler will be called after
+.Xr fork 2
+processing completes in the child process.
+If no handling is desired at one or more of these three points, the
+corresponding fork handler address(es) may be set to NULL.
+.Pp
+The order of calls to 
+.Fn pthread_atfork
+is significant.
+The
+.Fa parent
+and
+.Fa child
+fork handlers will be called in the order in which they were 
+established by calls to
+.Fn pthread_atfork .
+The
+.Fa prepare
+fork handlers will be called in the opposite order.
+.Sh RETURN VALUES
+Upon successful completion,
+.Fn pthread_atfork
+returns a value of zero; otherwise, an error number is returned
+to indicate the error.
+.Sh ERRORS
+The
+.Fn pthread_atfork
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er ENOMEM
+Insufficient table space exists to record the fork handler addresses.
+.Sh SEE ALSO
+.Xr fork 2 ,
+.Xr pthread 3
+.Sh STANDARDS
+The
+.Fn pthread_atfork
+function is expected to conform to
+.St -p1003.1 .
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-doc mailing list