Manual Page Result
0
Command: pthread_atfork | Section: 3 | Source: OpenBSD | File: pthread_atfork.3
PTHREAD_ATFORK(3) FreeBSD Library Functions Manual PTHREAD_ATFORK(3)
NAME
pthread_atfork - specify handler functions to call when the process forks
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
prepare fork handler will be called before fork(2) processing commences.
The parent fork handler will be called after fork(2) processing completes
in the parent process. The child fork handler will be called after
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.
The order of calls to pthread_atfork() is significant. The parent and
child fork handlers will be called in the order in which they were
established by calls to pthread_atfork(). The prepare fork handlers will
be called in the opposite order.
If a shared object is unloaded from process memory using dlclose(3), then
any functions registered by calling pthread_atfork() from that shared
object will be unregistered without being invoked. Note that it is the
source of the call to pthread_atfork() that matters, not the source of
the functions that were registered.
RETURN VALUES
Upon successful completion, pthread_atfork() will return a value of zero.
Otherwise, an error number will be returned to indicate the error.
ERRORS
pthread_atfork() will fail if:
[ENOMEM] Insufficient table space exists to record the fork
handler addresses. None of the handler lists are
modified.
SEE ALSO
fork(2), atexit(3), dlclose(3)
STANDARDS
pthread_atfork() conforms to IEEE Std 1003.1-2004 ("POSIX.1").
The behavior when a shared object is unloaded is an extension to that
standard.
FreeBSD 14.1-RELEASE-p8 May 15, 2015 FreeBSD 14.1-RELEASE-p8