NAME Linux::AIO - linux-specific aio implemented using clone SYNOPSIS use Linux::AIO; DESCRIPTION This module implements asynchroneous i/o using the means available to linux - clone. It does not hook into the POSIX aio_* functions because linux does not yet support these in the kernel. Instead, a number of threads are started that execute your read/writes and signal their completion. Linux::AIO::min_parallel($nthreads) Set the minimum number of AIO threads to $nthreads. You *have* to call this function with a positive number at leats once, otherwise no threads will be started and you aio-operations will seem to hang. aio_read($fh,$offset,$length, $data,$dataoffset,$callback) aio_write($fh,$offset,$length, $data,$dataoffset,$callback) Reads or writes "length" bytes from the specified "fh" and "offset" into the scalar given by "data" and offset "dataoffset" and calls the callback without the actual number of bytes read (or undef on error). $fileno = Linux::AIO::poll_fileno Return the request result pipe filehandle. This filehandle must be polled for reading. If the pipe becomes readable you have to call "poll_cb". Linux::AIO::poll_cb Process all outstanding events on the result pipe. You have to call this regularly. Returns the number of events processed. You can use Event to multiplex, e.g.: Event->io(fd => Linux::AIO::poll_fileno, poll => 'r', async => 1, cb => \&Linux::AIO::poll_cb ); Linux::AIO::nreqs Returns the number of requests currently outstanding. BUGS This module has not yet been extensively tested. Watch out! SEE ALSO the Coro manpage. AUTHOR Marc Lehmann http://www.goof.com/pcg/marc/