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.122 by root, Tue May 13 19:35:16 2008 UTC vs.
Revision 1.124 by root, Thu May 29 03:20:40 2008 UTC

412 X_UNLOCK (reslock); 412 X_UNLOCK (reslock);
413 413
414 if (size) 414 if (size)
415 return; 415 return;
416 416
417 maybe_start_thread (); 417 etp_maybe_start_thread ();
418 418
419 FD_ZERO (&rfd); 419 FD_ZERO (&rfd);
420 FD_SET (respipe [0], &rfd); 420 FD_SET (respipe [0], &rfd);
421 421
422 PerlSock_select (respipe [0] + 1, &rfd, 0, 0, 0); 422 PerlSock_select (respipe [0] + 1, &rfd, 0, 0, 0);
423 } 423 }
424} 424}
425 425
426static int poll_cb (void) 426static int poll_cb (void)
427{ 427{
428 int res; 428 for (;;)
429
430 do
431 { 429 {
432 res = eio_poll (); 430 int res = eio_poll ();
433 431
434 if (res > 0) 432 if (res > 0)
435 croak (0); 433 croak (0);
434
435 if (!max_outstanding || max_outstanding > eio_nreqs ())
436 return res;
437
438 poll_wait ();
436 } 439 }
437 while (max_outstanding && max_outstanding <= eio_nreqs ());
438
439 return res;
440} 440}
441 441
442static void atfork_child (void) 442static void atfork_child (void)
443{ 443{
444 create_respipe (); 444 create_respipe ();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines