.\" Copyright (c) 2004 Apple Computer, Inc. .\" .Dd August 12, 2004 .Dt PTHREAD_ATFORK 3 .Os .Sh NAME .Nm pthread_atfork .Nd register handlers to be called before and after .Fn fork .Sh SYNOPSIS .Fd #include .Ft int .Fn pthread_atfork "void (*prepare)(void)" "void (*parent)(void)" "void (*child)(void)" .Sh DESCRIPTION The .Fn pthread_atfork function is used to register functions to be called before and after .Fn fork . The .Fa prepare handler is called before .Fn fork , while the .Fa parent and .Fa child handlers are called after .Fn fork in the parent and child process respectively. The .Fa prepare handlers are called in reverse order of their registration, while .Fa parent and .Fa child handlers are called in the order in which they were registered. Any of the handlers may be NULL. .Pp .Em Important : only async-signal-safe functions are allowed on the child side of .Fn fork . See .Xr sigaction 2 for details. .Sh RETURN VALUES If successful, the .Fn pthread_atfork function will return 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 The system lacked the necessary resources to add another handler to the list. .El .Sh SEE ALSO .Xr fork 2 .Sh STANDARDS .Fn pthread_atfork conforms to .St -p1003.1-96 .