--- IO-AIO/AIO.xs 2008/09/30 17:03:53 1.129 +++ IO-AIO/AIO.xs 2008/10/12 22:30:33 1.131 @@ -113,8 +113,6 @@ static int req_invoke (eio_req *req); #define EIO_FINISH(req) req_invoke (req) -static void aio_grp_feed (eio_req *grp); -#define EIO_FEED(req) aio_grp_feed (req) static void req_destroy (eio_req *grp); #define EIO_DESTROY(req) req_destroy (req) @@ -672,7 +670,7 @@ : IoOFP (sv_2io (fh))); req->offs = SvOK (offset) ? SvVAL64 (offset) : -1; req->size = len; - req->sv2 = SvREFCNT_inc (data); + req->sv2 = SvREFCNT_inc_NN (data); req->ptr2 = (char *)svptr + dataoffset; req->stroffset = dataoffset; @@ -1135,7 +1133,8 @@ CODE: { SvREFCNT_dec (grp->sv2); - grp->sv2 = newSVsv (callback); + grp->sv2 = newSVsv (callback); + grp->feed = aio_grp_feed; if (grp->int2 <= 0) grp->int2 = 2;