… | |
… | |
214 | Safefree (req->statdata); |
214 | Safefree (req->statdata); |
215 | } |
215 | } |
216 | |
216 | |
217 | PUSHMARK (SP); |
217 | PUSHMARK (SP); |
218 | XPUSHs (sv_2mortal (newSViv (req->result))); |
218 | XPUSHs (sv_2mortal (newSViv (req->result))); |
|
|
219 | |
|
|
220 | if (req->type == REQ_OPEN) |
|
|
221 | { |
|
|
222 | /* convert fd to fh */ |
|
|
223 | SV *fh; |
|
|
224 | |
|
|
225 | PUTBACK; |
|
|
226 | call_pv ("IO::AIO::_fd2fh", G_SCALAR | G_EVAL); |
|
|
227 | SPAGAIN; |
|
|
228 | |
|
|
229 | fh = POPs; |
|
|
230 | |
|
|
231 | PUSHMARK (SP); |
|
|
232 | XPUSHs (fh); |
|
|
233 | } |
|
|
234 | |
219 | PUTBACK; |
235 | PUTBACK; |
220 | call_sv (req->callback, G_VOID); |
236 | call_sv (req->callback, G_VOID | G_EVAL); |
221 | SPAGAIN; |
237 | SPAGAIN; |
222 | |
238 | |
223 | if (req->callback) |
239 | if (req->callback) |
224 | SvREFCNT_dec (req->callback); |
240 | SvREFCNT_dec (req->callback); |
225 | |
241 | |