ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libeio/eio.c
(Generate patch)

Comparing libeio/eio.c (file contents):
Revision 1.25 by root, Tue Sep 30 17:23:24 2008 UTC vs.
Revision 1.26 by root, Sun Oct 12 22:30:33 2008 UTC

604 604
605static void grp_try_feed (eio_req *grp) 605static void grp_try_feed (eio_req *grp)
606{ 606{
607 while (grp->size < grp->int2 && !EIO_CANCELLED (grp)) 607 while (grp->size < grp->int2 && !EIO_CANCELLED (grp))
608 { 608 {
609 int old_len = grp->size; 609 grp->flags &= ~EIO_FLAG_GROUPADD;
610 610
611 EIO_FEED (grp); 611 EIO_FEED (grp);
612 612
613 /* stop if no progress has been made */ 613 /* stop if no progress has been made */
614 if (old_len == grp->size) 614 if (!(grp->flags & EIO_FLAG_GROUPADD))
615 { 615 {
616 grp->feed = 0; 616 grp->feed = 0;
617 break; 617 break;
618 } 618 }
619 } 619 }
1481 1481
1482void eio_grp_add (eio_req *grp, eio_req *req) 1482void eio_grp_add (eio_req *grp, eio_req *req)
1483{ 1483{
1484 assert (("cannot add requests to IO::AIO::GRP after the group finished", grp->int1 != 2)); 1484 assert (("cannot add requests to IO::AIO::GRP after the group finished", grp->int1 != 2));
1485 1485
1486 grp->flags |= EIO_FLAG_GROUPADD;
1487
1486 ++grp->size; 1488 ++grp->size;
1487 req->grp = grp; 1489 req->grp = grp;
1488 1490
1489 req->grp_prev = 0; 1491 req->grp_prev = 0;
1490 req->grp_next = grp->grp_first; 1492 req->grp_next = grp->grp_first;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines