summaryrefslogtreecommitdiff
path: root/lib/libpthread/man/pthread_atfork.3
blob: 452d3de62a31eb43eed5b0c60d34d0d3884bc826 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.\"
.\" $OpenBSD: pthread_atfork.3,v 1.4 2005/10/30 03:37:34 brad Exp $
.\" $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 SYNOPSIS
.Fd #include <pthread.h>
.Pp
.Ft int
.Fn pthread_atfork "void (*prepare)(void)" "void (*parent)(void)" "void (*child)(void)"
.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.
.El
.Sh SEE ALSO
.Xr fork 2
.Sh STANDARDS
The
.Fn pthread_atfork
function is expected to conform to
.St -p1003.1 .