ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/AIO.xs
(Generate patch)

Comparing IO-AIO/AIO.xs (file contents):
Revision 1.50 by root, Sun Oct 22 21:13:47 2006 UTC vs.
Revision 1.52 by root, Sun Oct 22 22:14:54 2006 UTC

270 270
271 PUTBACK; 271 PUTBACK;
272 call_sv (req->callback, G_VOID | G_EVAL); 272 call_sv (req->callback, G_VOID | G_EVAL);
273 SPAGAIN; 273 SPAGAIN;
274 274
275 FREETMPS;
276 LEAVE;
277
278 errno = errorno;
279
275 if (SvTRUE (ERRSV)) 280 if (SvTRUE (ERRSV))
276 { 281 {
277 req_free (req); 282 req_free (req);
278 croak (0); 283 croak (0);
279 } 284 }
280
281 FREETMPS;
282 LEAVE;
283
284 errno = errorno;
285} 285}
286 286
287static void req_free (aio_req req) 287static void req_free (aio_req req)
288{ 288{
289 if (req->grp) 289 if (req->grp)
1305 } 1305 }
1306 } 1306 }
1307} 1307}
1308 1308
1309void 1309void
1310result (aio_req grp, ...)
1311 CODE:
1312{
1313 int i;
1314 AV *av = newAV ();
1315
1316 for (i = 1; i < items; ++i )
1317 av_push (av, newSVsv (ST (i)));
1318
1319 SvREFCNT_dec (grp->data);
1320 grp->data = (SV *)av;
1321}
1322
1323void
1310lock (aio_req grp) 1324lock (aio_req grp)
1311 CODE: 1325 CODE:
1312 ++grp->length; 1326 ++grp->length;
1313 1327
1314void 1328void

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines