PTHREAD_ATFORK(3)         OpenBSD Programmer's 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(), in the context of the thread that called fork().  The
     prepare fork handler will be called before fork() processing commences.
     The parent fork handler will be called after fork() processing completes
     in the parent process.  The child fork handler will be called after
     fork() processing completes in the child process.  If no handling is de-
     sired at one or more of these three points, the corresponding fork han-
     dler 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 estab-
     lished by calls to pthread_atfork().  The prepare fork handlers will be
     called in the opposite order.

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)

STANDARDS
     pthread_atfork() conforms to IEEE Std 1003.1-2004 (``POSIX'').

OpenBSD 4.1                    January 17, 1999                              1
