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.8 by root, Sun Jul 10 22:20:25 2005 UTC vs.
Revision 1.13 by root, Mon Jul 11 01:49:14 2005 UTC

27 \&IO::AIO::poll_cb; 27 \&IO::AIO::poll_cb;
28 28
29 # Tk 29 # Tk
30 Tk::Event::IO->fileevent (IO::AIO::poll_fileno, "", 30 Tk::Event::IO->fileevent (IO::AIO::poll_fileno, "",
31 readable => \&IO::AIO::poll_cb); 31 readable => \&IO::AIO::poll_cb);
32
33 # Danga::Socket
34 Danga::Socket->AddOtherFds (IO::AIO::poll_fileno =>
35 \&IO::AIO::poll_cb);
36
32 37
33=head1 DESCRIPTION 38=head1 DESCRIPTION
34 39
35This module implements asynchronous I/O using whatever means your 40This module implements asynchronous I/O using whatever means your
36operating system supports. 41operating system supports.
54use base 'Exporter'; 59use base 'Exporter';
55 60
56use Fcntl (); 61use Fcntl ();
57 62
58BEGIN { 63BEGIN {
59 $VERSION = 0.2; 64 $VERSION = 0.3;
60 65
61 @EXPORT = qw(aio_read aio_write aio_open aio_close aio_stat aio_lstat aio_unlink 66 @EXPORT = qw(aio_read aio_write aio_open aio_close aio_stat aio_lstat aio_unlink
62 aio_fsync aio_fdatasync aio_readahead); 67 aio_fsync aio_fdatasync aio_readahead);
63 @EXPORT_OK = qw(poll_fileno poll_cb min_parallel max_parallel max_outstanding nreqs); 68 @EXPORT_OK = qw(poll_fileno poll_cb min_parallel max_parallel max_outstanding nreqs);
64 69
128 133
129Example: Read 15 bytes at offset 7 into scalar C<$buffer>, strating at 134Example: Read 15 bytes at offset 7 into scalar C<$buffer>, strating at
130offset C<0> within the scalar: 135offset C<0> within the scalar:
131 136
132 aio_read $fh, 7, 15, $buffer, 0, sub { 137 aio_read $fh, 7, 15, $buffer, 0, sub {
133 $_[0] >= 0 or die "read error: $!"; 138 $_[0] > 0 or die "read error: $!";
134 print "read <$buffer>\n"; 139 print "read $_[0] bytes: <$buffer>\n";
135 }; 140 };
136 141
137=item aio_readahead $fh,$offset,$length, $callback 142=item aio_readahead $fh,$offset,$length, $callback
138 143
139Asynchronously reads the specified byte range into the page cache, using 144Asynchronously reads the specified byte range into the page cache, using
228Example: wait till there are no outstanding requests anymore: 233Example: wait till there are no outstanding requests anymore:
229 234
230 IO::AIO::poll_wait, IO::AIO::poll_cb 235 IO::AIO::poll_wait, IO::AIO::poll_cb
231 while IO::AIO::nreqs; 236 while IO::AIO::nreqs;
232 237
238=item IO::AIO::flush
239
240Wait till all outstanding AIO requests have been handled.
241
242Strictly equivalent to:
243
244 IO::AIO::poll_wait, IO::AIO::poll_cb
245 while IO::AIO::nreqs;
246
247=item IO::AIO::poll
248
249Waits until some requests have been handled.
250
251Strictly equivalent to:
252
253 IO::AIO::poll_wait, IO::AIO::poll_cb
254 if IO::AIO::nreqs;
255
233=item IO::AIO::min_parallel $nthreads 256=item IO::AIO::min_parallel $nthreads
234 257
235Set the minimum number of AIO threads to C<$nthreads>. The default is 258Set the minimum number of AIO threads to C<$nthreads>. The default is
236C<1>, which means a single asynchronous operation can be done at one time 259C<1>, which means a single asynchronous operation can be done at one time
237(the number of outstanding operations, however, is unlimited). 260(the number of outstanding operations, however, is unlimited).

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines