ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/AIO.pm
(Generate patch)

Comparing IO-AIO/AIO.pm (file contents):
Revision 1.16 by root, Mon Jul 11 03:10:08 2005 UTC vs.
Revision 1.17 by root, Mon Jul 11 03:29:22 2005 UTC

129Reads or writes C<length> bytes from the specified C<fh> and C<offset> 129Reads or writes C<length> bytes from the specified C<fh> and C<offset>
130into the scalar given by C<data> and offset C<dataoffset> and calls the 130into the scalar given by C<data> and offset C<dataoffset> and calls the
131callback without the actual number of bytes read (or -1 on error, just 131callback without the actual number of bytes read (or -1 on error, just
132like the syscall). 132like the syscall).
133 133
134Example: Read 15 bytes at offset 7 into scalar C<$buffer>, strating at 134Example: Read 15 bytes at offset 7 into scalar C<$buffer>, starting at
135offset C<0> within the scalar: 135offset C<0> within the scalar:
136 136
137 aio_read $fh, 7, 15, $buffer, 0, sub { 137 aio_read $fh, 7, 15, $buffer, 0, sub {
138 $_[0] > 0 or die "read error: $!"; 138 $_[0] > 0 or die "read error: $!";
139 print "read $_[0] bytes: <$buffer>\n"; 139 print "read $_[0] bytes: <$buffer>\n";
140 }; 140 };
141 141
142=item aio_readahead $fh,$offset,$length, $callback 142=item aio_readahead $fh,$offset,$length, $callback
143 143
144Asynchronously reads the specified byte range into the page cache, using 144Asynchronously reads the specified byte range into the page cache, using
145the C<readahead> syscall. If that syscall doesn't exist the status will be 145the C<readahead> syscall. If that syscall doesn't exist (likely if your OS
146C<-1> and C<$!> is set to ENOSYS. 146isn't Linux) the status will be C<-1> and C<$!> is set to ENOSYS.
147 147
148readahead() populates the page cache with data from a file so that 148readahead() populates the page cache with data from a file so that
149subsequent reads from that file will not block on disk I/O. The C<$offset> 149subsequent reads from that file will not block on disk I/O. The C<$offset>
150argument specifies the starting point from which data is to be read and 150argument specifies the starting point from which data is to be read and
151C<$length> specifies the number of bytes to be read. I/O is performed in 151C<$length> specifies the number of bytes to be read. I/O is performed in

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines