manpagez: man(ual) pages & more
man pthread_atfork(3)
Home | html | info | man

pthread_atfork(3)        BSD Library Functions Manual        pthread_atfork(3)


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

     fork(2), pthread(3)


STANDARDS

     The pthread_atfork() conforms to ISO/IEC 9945-1:1996 (``POSIX.1'').

BSD                              June 21, 2004                             BSD

Mac OS X 10.12.3 - Generated Sun Feb 5 15:43:38 CST 2017
© manpagez.com 2000-2017
Individual documents may contain additional copyright information.