blob: 62d5948f5b00993498332b12e04695a2e34cb9a5 (
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
74
75
76
|
.\" $OpenBSD: pthread_atfork.3,v 1.8 2005/11/14 23:46:40 jmc Exp $
.\"
.\" David Leonard <d@openbsd.org>, 1999. Public domain.
.\"
.Dd January 17, 1999
.Dt PTHREAD_ATFORK 3
.Os
.Sh NAME
.Nm pthread_atfork
.Nd specify handler functions to call when the process forks
.Sh SYNOPSIS
.Fd #include <pthread.h>
.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
.Fn fork ,
in the context of the thread that called
.Fn fork .
The
.Fa prepare
fork handler will be called before
.Fn fork
processing commences.
The
.Fa parent
fork handler will be called after
.Fn fork
processing completes in the parent process.
The
.Fa child
fork handler will be called after
.Fn fork
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
.Dv 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
will return a value of zero.
Otherwise, an error number will be
returned to indicate the error.
.Sh ERRORS
.Fn pthread_atfork
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Insufficient table space exists to record the fork handler addresses.
None of the handler lists are modified.
.El
.Sh SEE ALSO
.Xr fork 2 ,
.Xr atexit 3
.Sh STANDARDS
.Fn pthread_atfork
conforms to
.St -p1003.1-2004 .
|