… | |
… | |
62 | } |
62 | } |
63 | |
63 | |
64 | static void |
64 | static void |
65 | api_once (int fd, short events, double timeout, void (*cb)(int, short, void *), void *arg) |
65 | api_once (int fd, short events, double timeout, void (*cb)(int, short, void *), void *arg) |
66 | { |
66 | { |
67 | if (timeout) |
67 | if (timeout >= 0.) |
68 | { |
68 | { |
69 | struct timeval tv; |
69 | struct timeval tv; |
70 | tv_set (&tv, timeout); |
70 | tv_set (&tv, timeout); |
71 | event_once (fd, events, cb, arg, &tv); |
71 | event_once (fd, events, cb, arg, &tv); |
72 | } |
72 | } |
… | |
… | |
323 | |
323 | |
324 | evapi.ver = EV_API_VERSION; |
324 | evapi.ver = EV_API_VERSION; |
325 | evapi.rev = EV_API_REVISION; |
325 | evapi.rev = EV_API_REVISION; |
326 | evapi.now = e_now; |
326 | evapi.now = e_now; |
327 | evapi.once = api_once; |
327 | evapi.once = api_once; |
|
|
328 | evapi.loop = event_loop; |
328 | |
329 | |
329 | sv_setiv (sv, (IV)&evapi); |
330 | sv_setiv (sv, (IV)&evapi); |
330 | SvREADONLY_on (sv); |
331 | SvREADONLY_on (sv); |
331 | } |
332 | } |
332 | } |
333 | } |