… | |
… | |
37 | # define fd_mask Perl_fd_mask |
37 | # define fd_mask Perl_fd_mask |
38 | #endif |
38 | #endif |
39 | /* due to bugs in OS X we have to use libev/ explicitly here */ |
39 | /* due to bugs in OS X we have to use libev/ explicitly here */ |
40 | #include "libev/ev.c" |
40 | #include "libev/ev.c" |
41 | |
41 | |
42 | #if !defined _WIN32 && !defined _MINIX |
42 | #if !defined _WIN32 && !defined _MINIX && !EV_NO_ATFORK |
43 | # include <pthread.h> |
43 | # include <pthread.h> |
44 | #endif |
44 | #endif |
45 | |
45 | |
46 | #define e_loop(w) INT2PTR (struct ev_loop *, SvIVX (((ev_watcher *)(w))->loop)) |
46 | #define e_loop(w) INT2PTR (struct ev_loop *, SvIVX (((ev_watcher *)(w))->loop)) |
47 | #define e_flags(w) ((ev_watcher *)(w))->e_flags |
47 | #define e_flags(w) ((ev_watcher *)(w))->e_flags |
… | |
… | |
533 | evapi.invoke = ev_invoke; |
533 | evapi.invoke = ev_invoke; |
534 | |
534 | |
535 | sv_setiv (sv, (IV)&evapi); |
535 | sv_setiv (sv, (IV)&evapi); |
536 | SvREADONLY_on (sv); |
536 | SvREADONLY_on (sv); |
537 | } |
537 | } |
538 | #if !defined _WIN32 && !defined _MINIX |
538 | #if !defined _WIN32 && !defined _MINIX && !EV_NO_ATFORK |
539 | #if __linux |
539 | #if __linux |
540 | int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle); |
540 | int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void * __dso_handle); |
541 | __register_atfork (0, 0, default_fork, 0); |
541 | __register_atfork (0, 0, default_fork, 0); |
542 | #else |
542 | #else |
543 | pthread_atfork (0, 0, default_fork); |
543 | pthread_atfork (0, 0, default_fork); |