… | |
… | |
578 | C_ARGS: evapi.default_loop |
578 | C_ARGS: evapi.default_loop |
579 | |
579 | |
580 | ev_io *io (SV *fh, int events, SV *cb) |
580 | ev_io *io (SV *fh, int events, SV *cb) |
581 | ALIAS: |
581 | ALIAS: |
582 | io_ns = 1 |
582 | io_ns = 1 |
|
|
583 | _ae_io = 2 |
583 | CODE: |
584 | CODE: |
584 | { |
585 | { |
585 | int fd = s_fileno (fh, events & EV_WRITE); |
586 | int fd = s_fileno (fh, events & EV_WRITE); |
586 | CHECK_FD (fh, fd); |
587 | CHECK_FD (fh, fd); |
|
|
588 | |
|
|
589 | if (ix == 2) |
|
|
590 | { |
|
|
591 | ix = 0; |
|
|
592 | events = events ? EV_WRITE : EV_READ; |
|
|
593 | } |
587 | |
594 | |
588 | RETVAL = e_new (sizeof (ev_io), cb, default_loop_sv); |
595 | RETVAL = e_new (sizeof (ev_io), cb, default_loop_sv); |
589 | RETVAL->fh = newSVsv (fh); |
596 | RETVAL->fh = newSVsv (fh); |
590 | ev_io_set (RETVAL, fd, events); |
597 | ev_io_set (RETVAL, fd, events); |
591 | if (!ix) START (io, RETVAL); |
598 | if (!ix) START (io, RETVAL); |