--- IO-AIO/README 2008/04/16 16:45:30 1.29 +++ IO-AIO/README 2008/05/29 03:35:03 1.31 @@ -26,9 +26,8 @@ my $grp = aio_group sub { print "all stats done\n" }; add $grp aio_stat "..." for ...; - # AnyEvent integration (EV, Event, Glib, Tk, urxvt, pureperl...) - open my $fh, "<&=" . IO::AIO::poll_fileno or die "$!"; - my $w = AnyEvent->io (fh => $fh, poll => 'r', cb => sub { IO::AIO::poll_cb }); + # AnyEvent integration (EV, Event, Glib, Tk, POE, urxvt, pureperl...) + use AnyEvent::AIO; # EV integration my $w = EV::io IO::AIO::poll_fileno, EV::READ, \&IO::AIO::poll_cb; @@ -750,13 +749,15 @@ IO::AIO::poll_cb Process some outstanding events on the result pipe. You have to call - this regularly. Returns the number of events processed. Returns - immediately when no events are outstanding. The amount of events - processed depends on the settings of "IO::AIO::max_poll_req" and + this regularly. Returns 0 if all events could be processed, or -1 if + it returned earlier for whatever reason. Returns immediately when no + events are outstanding. The amount of events processed depends on + the settings of "IO::AIO::max_poll_req" and "IO::AIO::max_poll_time". If not all requests were processed for whatever reason, the - filehandle will still be ready when "poll_cb" returns. + filehandle will still be ready when "poll_cb" returns, so normally + you don't have to do anything special to have it called later. Example: Install an Event watcher that automatically calls IO::AIO::poll_cb with high priority: @@ -872,7 +873,7 @@ creation is fast. If thread creation is very slow on your system you might want to use larger values. - $oldmaxreqs = IO::AIO::max_outstanding $maxreqs + IO::AIO::max_outstanding $maxreqs This is a very bad function to use in interactive programs because it blocks, and a bad way to reduce concurrency because it is inexact: Better use an "aio_group" together with a feed callback. @@ -886,7 +887,7 @@ the number of outstanding requests. You can still queue as many requests as you want. Therefore, - "max_oustsanding" is mainly useful in simple scripts (with low + "max_outstanding" is mainly useful in simple scripts (with low values) or as a stop gap to shield against fatal memory overflow (with large values). @@ -946,7 +947,8 @@ Known bugs will be fixed in the next release. SEE ALSO - Coro::AIO. + AnyEvent::AIO for easy integration into event loops, Coro::AIO for a + more natural syntax. AUTHOR Marc Lehmann