… | |
… | |
3 | #include "XSUB.h" |
3 | #include "XSUB.h" |
4 | |
4 | |
5 | /*#include <netinet/in.h>*/ |
5 | /*#include <netinet/in.h>*/ |
6 | |
6 | |
7 | #define EV_PROTOTYPES 1 |
7 | #define EV_PROTOTYPES 1 |
|
|
8 | #define EV_USE_NANOSLEEP EV_USE_MONOTONIC |
8 | #define EV_H <ev.h> |
9 | #define EV_H <ev.h> |
9 | #include "EV/EVAPI.h" |
10 | #include "EV/EVAPI.h" |
10 | |
11 | |
11 | /* fix perl api breakage */ |
12 | /* fix perl api breakage */ |
12 | #undef signal |
13 | #undef signal |
… | |
… | |
40 | ev_ref (e_loop (w)); |
41 | ev_ref (e_loop (w)); |
41 | |
42 | |
42 | #define START(type,w) \ |
43 | #define START(type,w) \ |
43 | do { \ |
44 | do { \ |
44 | UNREF (w); \ |
45 | UNREF (w); \ |
45 | ev_ ## type ## _start (e_loop (w), w); \ |
46 | ev_ ## type ## _start (e_loop (w), w); \ |
46 | } while (0) |
47 | } while (0) |
47 | |
48 | |
48 | #define STOP(type,w) \ |
49 | #define STOP(type,w) \ |
49 | do { \ |
50 | do { \ |
50 | REF (w); \ |
51 | REF (w); \ |
51 | ev_ ## type ## _stop (e_loop (w), w); \ |
52 | ev_ ## type ## _stop (e_loop (w), w); \ |
52 | } while (0) |
53 | } while (0) |
53 | |
54 | |
54 | #define RESET(type,w,seta) \ |
55 | #define RESET(type,w,seta) \ |
55 | do { \ |
56 | do { \ |
56 | int active = ev_is_active (w); \ |
57 | int active = ev_is_active (w); \ |
… | |
… | |
388 | evapi.sv_signum = sv_signum; |
389 | evapi.sv_signum = sv_signum; |
389 | evapi.supported_backends = ev_supported_backends (); |
390 | evapi.supported_backends = ev_supported_backends (); |
390 | evapi.recommended_backends = ev_recommended_backends (); |
391 | evapi.recommended_backends = ev_recommended_backends (); |
391 | evapi.embeddable_backends = ev_embeddable_backends (); |
392 | evapi.embeddable_backends = ev_embeddable_backends (); |
392 | evapi.time = ev_time; |
393 | evapi.time = ev_time; |
|
|
394 | evapi.sleep = ev_sleep; |
393 | evapi.loop_new = ev_loop_new; |
395 | evapi.loop_new = ev_loop_new; |
394 | evapi.loop_destroy = ev_loop_destroy; |
396 | evapi.loop_destroy = ev_loop_destroy; |
395 | evapi.loop_fork = ev_loop_fork; |
397 | evapi.loop_fork = ev_loop_fork; |
396 | evapi.loop_count = ev_loop_count; |
398 | evapi.loop_count = ev_loop_count; |
397 | evapi.now = ev_now; |
399 | evapi.now = ev_now; |
… | |
… | |
453 | RETVAL = newSVsv (default_loop_sv); |
455 | RETVAL = newSVsv (default_loop_sv); |
454 | } |
456 | } |
455 | OUTPUT: |
457 | OUTPUT: |
456 | RETVAL |
458 | RETVAL |
457 | |
459 | |
|
|
460 | void ev_default_destroy () |
|
|
461 | CODE: |
|
|
462 | ev_default_destroy (); |
|
|
463 | SvREFCNT_dec (default_loop_sv); |
|
|
464 | default_loop_sv = 0; |
|
|
465 | |
|
|
466 | unsigned int ev_supported_backends () |
|
|
467 | |
|
|
468 | unsigned int ev_recommended_backends () |
|
|
469 | |
|
|
470 | unsigned int ev_embeddable_backends () |
|
|
471 | |
458 | NV ev_time () |
472 | NV ev_time () |
459 | |
473 | |
460 | NV ev_now () |
474 | NV ev_now () |
461 | C_ARGS: evapi.default_loop |
475 | C_ARGS: evapi.default_loop |
462 | |
476 | |
463 | unsigned int ev_backend () |
477 | unsigned int ev_backend () |
464 | C_ARGS: evapi.default_loop |
478 | C_ARGS: evapi.default_loop |
465 | |
479 | |
466 | unsigned int ev_loop_count () |
480 | unsigned int ev_loop_count () |
467 | C_ARGS: evapi.default_loop |
481 | C_ARGS: evapi.default_loop |
|
|
482 | |
|
|
483 | void ev_set_io_collect_interval (NV interval) |
|
|
484 | C_ARGS: evapi.default_loop, interval |
|
|
485 | |
|
|
486 | void ev_set_timeout_collect_interval (NV interval) |
|
|
487 | C_ARGS: evapi.default_loop, interval |
468 | |
488 | |
469 | void ev_loop (int flags = 0) |
489 | void ev_loop (int flags = 0) |
470 | C_ARGS: evapi.default_loop, flags |
490 | C_ARGS: evapi.default_loop, flags |
471 | |
491 | |
472 | void ev_unloop (int how = 1) |
492 | void ev_unloop (int how = 1) |
… | |
… | |
687 | { |
707 | { |
688 | SvREFCNT_dec (w->data); |
708 | SvREFCNT_dec (w->data); |
689 | w->data = newSVsv (new_data); |
709 | w->data = newSVsv (new_data); |
690 | } |
710 | } |
691 | } |
711 | } |
|
|
712 | OUTPUT: |
|
|
713 | RETVAL |
|
|
714 | |
|
|
715 | SV *loop (ev_watcher *w) |
|
|
716 | CODE: |
|
|
717 | RETVAL = newRV_inc (w->loop); |
692 | OUTPUT: |
718 | OUTPUT: |
693 | RETVAL |
719 | RETVAL |
694 | |
720 | |
695 | int priority (ev_watcher *w, int new_priority = 0) |
721 | int priority (ev_watcher *w, int new_priority = 0) |
696 | CODE: |
722 | CODE: |
… | |
… | |
909 | void DESTROY (ev_idle *w) |
935 | void DESTROY (ev_idle *w) |
910 | CODE: |
936 | CODE: |
911 | STOP (idle, w); |
937 | STOP (idle, w); |
912 | e_destroy (w); |
938 | e_destroy (w); |
913 | |
939 | |
914 | MODULE = EV PACKAGE = EV::Prepare PREFIX = ev_check_ |
940 | MODULE = EV PACKAGE = EV::Prepare PREFIX = ev_prepare_ |
915 | |
941 | |
916 | void ev_prepare_start (ev_prepare *w) |
942 | void ev_prepare_start (ev_prepare *w) |
917 | CODE: |
943 | CODE: |
918 | START (prepare, w); |
944 | START (prepare, w); |
919 | |
945 | |
… | |
… | |
1139 | |
1165 | |
1140 | void ev_loop_fork (struct ev_loop *loop) |
1166 | void ev_loop_fork (struct ev_loop *loop) |
1141 | |
1167 | |
1142 | NV ev_now (struct ev_loop *loop) |
1168 | NV ev_now (struct ev_loop *loop) |
1143 | |
1169 | |
|
|
1170 | void ev_set_io_collect_interval (struct ev_loop *loop, NV interval) |
|
|
1171 | |
|
|
1172 | void ev_set_timeout_collect_interval (struct ev_loop *loop, NV interval) |
|
|
1173 | |
1144 | unsigned int ev_backend (struct ev_loop *loop) |
1174 | unsigned int ev_backend (struct ev_loop *loop) |
1145 | |
1175 | |
1146 | unsigned int ev_loop_count (struct ev_loop *loop) |
1176 | unsigned int ev_loop_count (struct ev_loop *loop) |
1147 | |
1177 | |
1148 | void ev_loop (struct ev_loop *loop, int flags = 0) |
1178 | void ev_loop (struct ev_loop *loop, int flags = 0) |