#include #include #include #include "thread_internal.h" #define PTHREAD_NUM_ATFORK 4 static struct _pthread_fastlock __atfork_struct_lock; static struct { int used; void (*prepare)(void); void (*parent)(void); void (*child)(void); } pthread_atfork_buf[PTHREAD_NUM_ATFORK]; int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void)) { int i,ret=-1; __NO_ASYNC_CANCEL_BEGIN; __pthread_lock(&__atfork_struct_lock); for (i=0;i0) { /* parent */ for (i=0;i