--- IO-AIO/README 2011/03/27 10:26:08 1.46 +++ IO-AIO/README 2011/05/27 00:44:49 1.47 @@ -308,6 +308,15 @@ } }; + In addition to all the common open modes/flags ("O_RDONLY", + "O_WRONLY", "O_RDWR", "O_CREAT", "O_TRUNC", "O_EXCL" and + "O_APPEND"), the following POSIX and non-POSIX constants are + available (missing ones on your system are, as usual, 0): + + "O_ASYNC", "O_DIRECT", "O_NOATIME", "O_CLOEXEC", "O_NOCTTY", + "O_NOFOLLOW", "O_NONBLOCK", "O_EXEC", "O_SEARCH", "O_DIRECTORY", + "O_DSYNC", "O_RSYNC", "O_SYNC" and "O_TTY_INIT". + aio_close $fh, $callback->($status) Asynchronously close a file and call the callback with the result code. @@ -571,9 +580,9 @@ modified): IO::AIO::READDIR_DENTS - When this flag is off, then the callback gets an arrayref with - of names only (as with "aio_readdir"), otherwise it gets an - arrayref with "[$name, $type, $inode]" arrayrefs, each + When this flag is off, then the callback gets an arrayref + consisting of names only (as with "aio_readdir"), otherwise it + gets an arrayref with "[$name, $type, $inode]" arrayrefs, each describing a single directory entry in more detail. $name is the name of the entry. @@ -596,14 +605,15 @@ IO::AIO::READDIR_DIRS_FIRST When this flag is set, then the names will be returned in an - order where likely directories come first. This is useful when - you need to quickly find directories, or you want to find all - directories while avoiding to stat() each entry. + order where likely directories come first, in optimal stat + order. This is useful when you need to quickly find directories, + or you want to find all directories while avoiding to stat() + each entry. If the system returns type information in readdir, then this is used to find directories directly. Otherwise, likely directories - are files beginning with ".", or otherwise files with no dots, - of which files with short names are tried first. + are names beginning with ".", or otherwise names with no dots, + of which names with short names are tried first. IO::AIO::READDIR_STAT_ORDER When this flag is set, then the names will be returned in an @@ -1024,16 +1034,23 @@ IO::AIO::poll_cb Process some outstanding events on the result pipe. You have to call - 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". + this regularly. Returns 0 if all events could be processed (or there + were no events to process), 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, so normally you don't have to do anything special to have it called later. + Apart from calling "IO::AIO::poll_cb" when the event filehandle + becomes ready, it can be beneficial to call this function from loops + which submit a lot of requests, to make sure the results get + processed when they become available and not just when the loop is + finished and the event loop takes over again. This function returns + very fast when there are no outstanding requests. + Example: Install an Event watcher that automatically calls IO::AIO::poll_cb with high priority (more examples can be found in the SYNOPSIS section, at the top of this document):