… | |
… | |
5 | /* fix perl api breakage */ |
5 | /* fix perl api breakage */ |
6 | #undef signal |
6 | #undef signal |
7 | #undef sigaction |
7 | #undef sigaction |
8 | |
8 | |
9 | #include "schmorp.h" |
9 | #include "schmorp.h" |
|
|
10 | |
|
|
11 | /* old API compatibility */ |
|
|
12 | static int |
|
|
13 | sv_fileno (SV *fh) |
|
|
14 | { |
|
|
15 | return s_fileno (fh, 0); |
|
|
16 | } |
10 | |
17 | |
11 | #define EV_PROTOTYPES 1 |
18 | #define EV_PROTOTYPES 1 |
12 | #define EV_USE_NANOSLEEP EV_USE_MONOTONIC |
19 | #define EV_USE_NANOSLEEP EV_USE_MONOTONIC |
13 | #define EV_H <ev.h> |
20 | #define EV_H <ev.h> |
14 | #include "EV/EVAPI.h" |
21 | #include "EV/EVAPI.h" |
… | |
… | |
389 | perl_get_sv ("EV::API", TRUE); /* silence 5.10 warning */ |
396 | perl_get_sv ("EV::API", TRUE); /* silence 5.10 warning */ |
390 | |
397 | |
391 | /* the poor man's shared library emulator */ |
398 | /* the poor man's shared library emulator */ |
392 | evapi.ver = EV_API_VERSION; |
399 | evapi.ver = EV_API_VERSION; |
393 | evapi.rev = EV_API_REVISION; |
400 | evapi.rev = EV_API_REVISION; |
394 | evapi.sv_fileno = s_fileno; |
401 | evapi.sv_fileno = sv_fileno; |
395 | evapi.sv_signum = s_signum; |
402 | evapi.sv_signum = s_signum; |
396 | evapi.supported_backends = ev_supported_backends (); |
403 | evapi.supported_backends = ev_supported_backends (); |
397 | evapi.recommended_backends = ev_recommended_backends (); |
404 | evapi.recommended_backends = ev_recommended_backends (); |
398 | evapi.embeddable_backends = ev_embeddable_backends (); |
405 | evapi.embeddable_backends = ev_embeddable_backends (); |
399 | evapi.time_ = ev_time; |
406 | evapi.time_ = ev_time; |
… | |
… | |
410 | evapi.suspend = ev_suspend; |
417 | evapi.suspend = ev_suspend; |
411 | evapi.resume = ev_resume; |
418 | evapi.resume = ev_resume; |
412 | evapi.backend = ev_backend; |
419 | evapi.backend = ev_backend; |
413 | evapi.unloop = ev_unloop; |
420 | evapi.unloop = ev_unloop; |
414 | evapi.invoke_pending = ev_invoke_pending; |
421 | evapi.invoke_pending = ev_invoke_pending; |
|
|
422 | evapi.pending_count = ev_pending_count; |
415 | evapi.set_loop_release_cb = ev_set_loop_release_cb; |
423 | evapi.set_loop_release_cb = ev_set_loop_release_cb; |
416 | evapi.set_invoke_pending_cb= ev_set_invoke_pending_cb; |
424 | evapi.set_invoke_pending_cb= ev_set_invoke_pending_cb; |
417 | evapi.ref = ev_ref; |
425 | evapi.ref = ev_ref; |
418 | evapi.unref = ev_unref; |
426 | evapi.unref = ev_unref; |
419 | evapi.loop = ev_loop; |
427 | evapi.loop = ev_loop; |
… | |
… | |
537 | CHECK_SIG (signal, signum); |
545 | CHECK_SIG (signal, signum); |
538 | |
546 | |
539 | ev_feed_signal_event (evapi.default_loop, signum); |
547 | ev_feed_signal_event (evapi.default_loop, signum); |
540 | } |
548 | } |
541 | |
549 | |
|
|
550 | unsigned int ev_pending_count () |
|
|
551 | C_ARGS: evapi.default_loop |
|
|
552 | |
|
|
553 | void ev_invoke_pending () |
|
|
554 | C_ARGS: evapi.default_loop |
|
|
555 | |
542 | ev_io *io (SV *fh, int events, SV *cb) |
556 | ev_io *io (SV *fh, int events, SV *cb) |
543 | ALIAS: |
557 | ALIAS: |
544 | io_ns = 1 |
558 | io_ns = 1 |
545 | CODE: |
559 | CODE: |
546 | { |
560 | { |
… | |
… | |
1245 | |
1259 | |
1246 | void ev_unloop (struct ev_loop *loop, int how = 1) |
1260 | void ev_unloop (struct ev_loop *loop, int how = 1) |
1247 | |
1261 | |
1248 | void ev_feed_fd_event (struct ev_loop *loop, int fd, int revents = EV_NONE) |
1262 | void ev_feed_fd_event (struct ev_loop *loop, int fd, int revents = EV_NONE) |
1249 | |
1263 | |
|
|
1264 | unsigned int ev_pending_count (struct ev_loop *loop) |
|
|
1265 | |
|
|
1266 | void ev_invoke_pending (struct ev_loop *loop) |
|
|
1267 | |
1250 | #if 0 |
1268 | #if 0 |
1251 | |
1269 | |
1252 | void ev_feed_signal_event (struct ev_loop *loop, SV *signal) |
1270 | void ev_feed_signal_event (struct ev_loop *loop, SV *signal) |
1253 | CODE: |
1271 | CODE: |
1254 | { |
1272 | { |