--- EV/EV.xs 2012/12/05 17:18:47 1.161 +++ EV/EV.xs 2013/01/15 21:49:38 1.162 @@ -17,7 +17,6 @@ #define EV_STANDALONE 1 #define EV_PROTOTYPES 1 -#define EV_USE_CLOCK_SYSCALL 0 /* as long as we need pthreads anyways... */ #define EV_USE_NANOSLEEP EV_USE_MONOTONIC #define EV_USE_FLOOR 1 #define EV_API_STATIC @@ -521,8 +520,13 @@ SvREADONLY_on (sv); } #if !defined _WIN32 && !defined _MINIX +#if __linux + int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle); + __register_atfork (0, 0, default_fork, 0); +#else pthread_atfork (0, 0, default_fork); #endif +#endif } SV *ev_default_loop (unsigned int flags = 0) @@ -604,7 +608,7 @@ void ev_set_timeout_collect_interval (NV interval) C_ARGS: evapi.default_loop, interval -void ev_run (int flags = 0) +int ev_run (int flags = 0) ALIAS: loop = 1 C_ARGS: evapi.default_loop, flags @@ -620,7 +624,7 @@ void ev_feed_signal_event (SV *signal) CODE: { - Signal signum = s_signum (signal); + Signal signum = s_signum (signal); CHECK_SIG (signal, signum); ev_feed_signal_event (evapi.default_loop, signum); @@ -1408,7 +1412,7 @@ ALIAS: loop_depth = 1 -void ev_run (struct ev_loop *loop, int flags = 0) +int ev_run (struct ev_loop *loop, int flags = 0) ALIAS: loop = 1