… | |
… | |
107 | { |
107 | { |
108 | dSP; |
108 | dSP; |
109 | I32 mark = SP - PL_stack_base; |
109 | I32 mark = SP - PL_stack_base; |
110 | SV *sv_self, *sv_events, *sv_status = 0; |
110 | SV *sv_self, *sv_events, *sv_status = 0; |
111 | static SV *sv_events_cache; |
111 | static SV *sv_events_cache; |
112 | |
|
|
113 | fprintf (stderr, "e_cb %p,%x\n", w, revents);//D |
|
|
114 | |
112 | |
115 | sv_self = newRV_inc (w->self); /* w->self MUST be blessed by now */ |
113 | sv_self = newRV_inc (w->self); /* w->self MUST be blessed by now */ |
116 | |
114 | |
117 | if (sv_events_cache) |
115 | if (sv_events_cache) |
118 | { |
116 | { |
… | |
… | |
293 | evapi.child_stop = ev_child_stop; |
291 | evapi.child_stop = ev_child_stop; |
294 | |
292 | |
295 | sv_setiv (sv, (IV)&evapi); |
293 | sv_setiv (sv, (IV)&evapi); |
296 | SvREADONLY_on (sv); |
294 | SvREADONLY_on (sv); |
297 | } |
295 | } |
|
|
296 | |
|
|
297 | pthread_atfork (ev_fork_prepare, ev_fork_parent, ev_fork_child); |
298 | } |
298 | } |
299 | |
299 | |
300 | NV ev_now () |
300 | NV ev_now () |
301 | CODE: |
301 | CODE: |
302 | RETVAL = ev_now; |
302 | RETVAL = ev_now; |