From owner-freebsd-doc@FreeBSD.ORG Tue Jun 22 15:01:06 2004 Return-Path: Delivered-To: freebsd-doc@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5FF7016A4CE for ; Tue, 22 Jun 2004 15:01:06 +0000 (GMT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5305C43D5F for ; Tue, 22 Jun 2004 15:01:06 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.11/8.12.11) with ESMTP id i5MF0gg6066123 for ; Tue, 22 Jun 2004 15:00:42 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.11/8.12.11/Submit) id i5MF0gPP066117; Tue, 22 Jun 2004 15:00:42 GMT (envelope-from gnats) Resent-Date: Tue, 22 Jun 2004 15:00:42 GMT Resent-Message-Id: <200406221500.i5MF0gPP066117@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-doc@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alex Vasylenko Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 975AC16A4CE for ; Tue, 22 Jun 2004 14:54:00 +0000 (GMT) Received: from mail.omut.org (mail.omut.org [216.218.215.140]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8306643D49 for ; Tue, 22 Jun 2004 14:54:00 +0000 (GMT) (envelope-from lxv@omut.org) Received: from tadpole.intranet (mix-anchor.intranet [10.10.10.251]) by mail.omut.org (8.12.11/8.12.11) with ESMTP id i5MErmPE095570 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jun 2004 07:53:48 -0700 (PDT) (envelope-from lxv@omut.org) Received: from tadpole.intranet (localhost.omut.org [127.0.0.1]) by tadpole.intranet (8.12.11/8.12.11) with ESMTP id i5MErlFn030657 for ; Tue, 22 Jun 2004 10:53:47 -0400 (EDT) (envelope-from lxv@tadpole.intranet) Received: (from lxv@localhost) by tadpole.intranet (8.12.11/8.12.11/Submit) id i5MErkpi030656; Tue, 22 Jun 2004 10:53:46 -0400 (EDT) (envelope-from lxv) Message-Id: <200406221453.i5MErkpi030656@tadpole.intranet> Date: Tue, 22 Jun 2004 10:53:46 -0400 (EDT) From: Alex Vasylenko To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: docs/68201: [patch] pthread_atfork(3) man page X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Alex Vasylenko List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jun 2004 15:01:06 -0000 >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: