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

Comparing Linux-AIO/AIO.pm (file contents):
Revision 1.32 by root, Sun Jul 10 15:00:38 2005 UTC vs.
Revision 1.35 by root, Tue Jul 12 10:51:09 2005 UTC

39All functions that expect a filehandle will also accept a file descriptor. 39All functions that expect a filehandle will also accept a file descriptor.
40 40
41The filenames you pass to these routines I<must> be absolute. The reason 41The filenames you pass to these routines I<must> be absolute. The reason
42is that at the time the request is being executed, the current working 42is that at the time the request is being executed, the current working
43directory could have changed. Alternatively, you can make sure that you 43directory could have changed. Alternatively, you can make sure that you
44never change the current workign directory. 44never change the current working directory.
45 45
46=over 4 46=over 4
47 47
48=cut 48=cut
49 49
50package Linux::AIO; 50package Linux::AIO;
51 51
52use base 'Exporter'; 52use base 'Exporter';
53 53
54BEGIN { 54BEGIN {
55 $VERSION = 1.71; 55 $VERSION = 1.72;
56 56
57 @EXPORT = qw(aio_read aio_write aio_open aio_close aio_stat aio_lstat aio_unlink 57 @EXPORT = qw(aio_read aio_write aio_open aio_close aio_stat aio_lstat aio_unlink
58 aio_fsync aio_fdatasync aio_readahead); 58 aio_fsync aio_fdatasync aio_readahead);
59 @EXPORT_OK = qw(poll_fileno poll_cb min_parallel max_parallel nreqs); 59 @EXPORT_OK = qw(poll_fileno poll_cb min_parallel max_parallel nreqs);
60 60
128 128
129Asynchronously open or create a file and call the callback with the 129Asynchronously open or create a file and call the callback with the
130filedescriptor (NOT a perl filehandle, sorry for that, but watch out, this 130filedescriptor (NOT a perl filehandle, sorry for that, but watch out, this
131might change in the future). 131might change in the future).
132 132
133The pathname passed to C<aio_open> must be absolute. See API NOTES, above,
134for an explanation.
135
133The C<$mode> argument is a bitmask. See the C<Fcntl> module for a 136The C<$mode> argument is a bitmask. See the C<Fcntl> module for a
134list. They are the same as used in C<sysopen>. 137list. They are the same as used in C<sysopen>.
135 138
136Example: 139Example:
137 140
138 aio_open "/etc/passwd", O_RDONLY, 0, sub { 141 aio_open "/etc/passwd", O_RDONLY, 0, sub {
139 if ($_[0] >= 0) { 142 if ($_[0] >= 0) {
140 open my $fh, "<&$_[0]"; # create a copy for perl 143 open my $fh, "<&=$_[0]";
141 aio_close $_[0], sub { }; # close the aio handle
142 print "open successful, fh is $fh\n"; 144 print "open successful, fh is $fh\n";
143 ... 145 ...
144 } else { 146 } else {
145 die "open failed: $!\n"; 147 die "open failed: $!\n";
146 } 148 }
237 239
238 - aio_open gives a fd, but all other functions expect a perl filehandle. 240 - aio_open gives a fd, but all other functions expect a perl filehandle.
239 241
240=head1 SEE ALSO 242=head1 SEE ALSO
241 243
242L<Coro>. 244L<Coro>, L<IO::AIO>.
243 245
244=head1 AUTHOR 246=head1 AUTHOR
245 247
246 Marc Lehmann <schmorp@schmorp.de> 248 Marc Lehmann <schmorp@schmorp.de>
247 http://home.schmorp.de/ 249 http://home.schmorp.de/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines