--- IO-AIO/README 2008/10/02 11:35:03 1.32 +++ IO-AIO/README 2009/04/21 20:06:05 1.35 @@ -277,10 +277,13 @@ aio_read $fh,$offset,$length, $data,$dataoffset, $callback->($retval) aio_write $fh,$offset,$length, $data,$dataoffset, $callback->($retval) - 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 -1 on error, - just like the syscall). + Reads or writes $length bytes from or to 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 -1 on + error, just like the syscall). + + "aio_read" will, like "sysread", shrink or grow the $data scalar to + offset plus the actual number of bytes read. If $offset is undefined, then the current file descriptor offset will be used (and updated), otherwise the file descriptor offset @@ -467,9 +470,9 @@ or destination) from $srcpath to $dstpath and call the callback with the 0 (error) or -1 ok. - This is a composite request that tries to rename(2) the file first. - If rename files with "EXDEV", it copies the file with "aio_copy" - and, if that is successful, unlinking the $srcpath. + This is a composite request that tries to rename(2) the file first; + if rename fails with "EXDEV", it copies the file with "aio_copy" + and, if that is successful, unlinks the $srcpath. aio_scandir $path, $maxreq, $callback->($dirs, $nondirs) Scans a directory (similar to "aio_readdir") but additionally tries @@ -544,6 +547,18 @@ If this call isn't available because your OS lacks it or it couldn't be detected, it will be emulated by calling "fsync" instead. + aio_sync_file_range $fh, $offset, $nbytes, $flags, $callback->($status) + Sync the data portion of the file specified by $offset and $length + to disk (but NOT the metadata), by calling the Linux-specific + sync_file_range call. If sync_file_range is not available or it + returns ENOSYS, then fdatasync or fsync is being substituted. + + $flags can be a combination of + "IO::AIO::SYNC_FILE_RANGE_WAIT_BEFORE", + "IO::AIO::SYNC_FILE_RANGE_WRITE" and + "IO::AIO::SYNC_FILE_RANGE_WAIT_AFTER": refer to the sync_file_range + manpage for details. + aio_pathsync $path, $callback->($status) This request tries to open, fsync and close the given path. This is a composite request intended to sync directories after directory @@ -717,7 +732,8 @@ If the feed does not queue more requests when called, it will be automatically removed from the group. - If the feed limit is 0, it will be set to 2 automatically. + If the feed limit is 0 when this method is called, it will be set to + 2 automatically. Example: @@ -738,6 +754,9 @@ Setting the limit to 0 will pause the feeding process. + The default value for the limit is 0, but note that setting a feeder + automatically bumps it up to 2. + SUPPORT FUNCTIONS EVENT PROCESSING AND EVENT LOOP INTEGRATION $fileno = IO::AIO::poll_fileno