… | |
… | |
111 | |
111 | |
112 | #include "libeio/eio.h" |
112 | #include "libeio/eio.h" |
113 | |
113 | |
114 | static int req_invoke (eio_req *req); |
114 | static int req_invoke (eio_req *req); |
115 | #define EIO_FINISH(req) req_invoke (req) |
115 | #define EIO_FINISH(req) req_invoke (req) |
116 | static void aio_grp_feed (eio_req *grp); |
|
|
117 | #define EIO_FEED(req) aio_grp_feed (req) |
|
|
118 | static void req_destroy (eio_req *grp); |
116 | static void req_destroy (eio_req *grp); |
119 | #define EIO_DESTROY(req) req_destroy (req) |
117 | #define EIO_DESTROY(req) req_destroy (req) |
120 | |
118 | |
121 | enum { |
119 | enum { |
122 | FLAG_SV2_RO_OFF = 0x40, /* data was set readonly */ |
120 | FLAG_SV2_RO_OFF = 0x40, /* data was set readonly */ |
… | |
… | |
1133 | void |
1131 | void |
1134 | feed (aio_req grp, SV *callback=&PL_sv_undef) |
1132 | feed (aio_req grp, SV *callback=&PL_sv_undef) |
1135 | CODE: |
1133 | CODE: |
1136 | { |
1134 | { |
1137 | SvREFCNT_dec (grp->sv2); |
1135 | SvREFCNT_dec (grp->sv2); |
1138 | grp->sv2 = newSVsv (callback); |
1136 | grp->sv2 = newSVsv (callback); |
|
|
1137 | grp->feed = aio_grp_feed; |
1139 | |
1138 | |
1140 | if (grp->int2 <= 0) |
1139 | if (grp->int2 <= 0) |
1141 | grp->int2 = 2; |
1140 | grp->int2 = 2; |
1142 | |
1141 | |
1143 | eio_grp_limit (grp, grp->int2); |
1142 | eio_grp_limit (grp, grp->int2); |