--- IO-AIO/AIO.pm 2005/07/10 22:20:55 1.9 +++ IO-AIO/AIO.pm 2005/07/11 03:09:00 1.15 @@ -24,12 +24,17 @@ # Glib/Gtk2 add_watch Glib::IO IO::AIO::poll_fileno, - \&IO::AIO::poll_cb; + sub { IO::AIO::poll_cb, 1 }; # Tk Tk::Event::IO->fileevent (IO::AIO::poll_fileno, "", readable => \&IO::AIO::poll_cb); + # Danga::Socket + Danga::Socket->AddOtherFds (IO::AIO::poll_fileno => + \&IO::AIO::poll_cb); + + =head1 DESCRIPTION This module implements asynchronous I/O using whatever means your @@ -56,7 +61,7 @@ use Fcntl (); BEGIN { - $VERSION = 0.2; + $VERSION = 0.3; @EXPORT = qw(aio_read aio_write aio_open aio_close aio_stat aio_lstat aio_unlink aio_fsync aio_fdatasync aio_readahead); @@ -72,11 +77,11 @@ All the C calls are more or less thin wrappers around the syscall with the same name (sans C). The arguments are similar or identical, -and they all accept an additional C<$callback> argument which must be -a code reference. This code reference will get called with the syscall -return code (e.g. most syscalls return C<-1> on error, unlike perl, which -usually delivers "false") as it's sole argument when the given syscall has -been executed asynchronously. +and they all accept an additional (and optional) C<$callback> argument +which must be a code reference. This code reference will get called with +the syscall return code (e.g. most syscalls return C<-1> on error, unlike +perl, which usually delivers "false") as it's sole argument when the given +syscall has been executed asynchronously. All functions that expect a filehandle will also accept a file descriptor. @@ -230,6 +235,24 @@ IO::AIO::poll_wait, IO::AIO::poll_cb while IO::AIO::nreqs; +=item IO::AIO::flush + +Wait till all outstanding AIO requests have been handled. + +Strictly equivalent to: + + IO::AIO::poll_wait, IO::AIO::poll_cb + while IO::AIO::nreqs; + +=item IO::AIO::poll + +Waits until some requests have been handled. + +Strictly equivalent to: + + IO::AIO::poll_wait, IO::AIO::poll_cb + if IO::AIO::nreqs; + =item IO::AIO::min_parallel $nthreads Set the minimum number of AIO threads to C<$nthreads>. The default is