NAME
pthread_atfork
—
register handlers to be called before
and after fork
()
SYNOPSIS
#include
<pthread.h>
int
pthread_atfork
(void
(*prepare)(void), void (*parent)(void),
void (*child)(void));
DESCRIPTION
The
pthread_atfork
()
function declares fork handlers to be called before and after
fork(2), in
the context of the thread that called
fork(2).
The handlers registered with
pthread_atfork
()
are called at the moments in time described below:
- prepare
- Before fork(2) processing commences in the parent process. If more than one prepare handler is registered they will be called in the opposite order they were registered.
- parent
- After fork(2) completes in the parent process. If more than one parent handler is registered they will be called in the same order they were registered.
- child
- After fork(2) processing completes in the child process. If more than one child handler is registered they will be called in the same order they were registered.
If no handling is desired at one or more of these three points, a null pointer may be passed as the corresponding fork handler.
Important:
only async-signal-safe functions are allowed on the child side of
fork
().
See sigaction(2) for details.
RETURN VALUES
If successful, the pthread_atfork
()
function will return zero. Otherwise an error number will be returned to
indicate the error.
ERRORS
The pthread_atfork
() function will fail
if:
- [
ENOMEM
] - The system lacked the necessary resources to add another handler to the list.
SEE ALSO
STANDARDS
The pthread_atfork
() conforms to
ISO/IEC 9945-1:1996 (“POSIX.1”).