--- IO-AIO/AIO.pm 2009/06/06 18:19:35 1.149 +++ IO-AIO/AIO.pm 2009/06/12 00:43:16 1.151 @@ -550,30 +550,30 @@ =over 4 -=item AIO::READDIR_DENTS +=item IO::AIO::READDIR_DENTS When this flag is off, then the callback gets an arrayref with of names only (as with C), otherwise it gets an arrayref with -C<[$name, $inode, $type]> arrayrefs, each describing a single directory +C<[$name, $type, $inode]> arrayrefs, each describing a single directory entry in more detail. C<$name> is the name of the entry. -C<$inode> is the inode number (which might not be exact on systems with 64 -bit inode numbers and 32 bit perls). On systems that do not deliver the -inode information, this will always be zero. - -C<$type> is one of the C constants: +C<$type> is one of the C constants: -C, C, C, C, -C, C, C, C, -C. +C, C, C, C, +C, C, C, C, +C. -C means just that: readdir does not know. If you need to +C means just that: readdir does not know. If you need to know, you have to run stat yourself. Also, for speed reasons, the C<$type> scalars are read-only: you can not modify them. -=item AIO::READDIR_DIRS_FIRST +C<$inode> is the inode number (which might not be exact on systems with 64 +bit inode numbers and 32 bit perls). On systems that do not deliver the +inode information, this will always be zero. + +=item 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 @@ -585,21 +585,21 @@ beginning with ".", or otherwise files with no dots, of which files with short names are tried first. -=item AIO::READDIR_STAT_ORDER +=item IO::AIO::READDIR_STAT_ORDER When this flag is set, then the names will be returned in an order suitable for stat()'ing each one. That is, when you plan to stat() all files in the given directory, then the returned order will likely be fastest. -If both this flag and IO::READDIR_DIRS_FIRST are specified, then the -likely dirs come first, resulting in a less optimal stat order. +If both this flag and C are specified, then +the likely dirs come first, resulting in a less optimal stat order. -=item AIO::READDIR_FOUND_UNKNOWN +=item IO::AIO::READDIR_FOUND_UNKNOWN This flag should not be set when calling C. Instead, it is being set by C, when any of the C<$type>'s found were -C. The absense of this flag therefore indicates that all +C. The absense of this flag therefore indicates that all C<$type>'s are known, which can be used to speed up some algorithms. =back @@ -842,7 +842,7 @@ $ndirs = -1; } else { # if nlink == 2, we are finished - # on non-posix-fs's, we rely on nlink < 2 + # for non-posix-fs's, we rely on nlink < 2 $ndirs = (stat _)[3] - 2 or return $grp->result ([], $entries); } @@ -856,7 +856,7 @@ limit $statgrp $maxreq; feed $statgrp sub { return unless @$entries; - my $entry = pop @$entries; + my $entry = shift @$entries; aioreq_pri $pri; add $statgrp aio_stat "$path/$entry/.", sub { @@ -1047,8 +1047,9 @@ Cancels the request, if possible. Has the effect of skipping execution when entering the B state and skipping calling the callback when entering the the B state, but will leave the request otherwise -untouched. That means that requests that currently execute will not be -stopped and resources held by the request will not be freed prematurely. +untouched (with the exception of readdir). That means that requests that +currently execute will not be stopped and resources held by the request +will not be freed prematurely. =item cb $req $callback->(...)