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.241 by root, Fri Dec 28 07:33:41 2012 UTC vs.
Revision 1.245 by root, Sat Jan 25 00:15:52 2014 UTC

68=head2 EXAMPLE 68=head2 EXAMPLE
69 69
70This is a simple example that uses the EV module and loads 70This is a simple example that uses the EV module and loads
71F</etc/passwd> asynchronously: 71F</etc/passwd> asynchronously:
72 72
73 use Fcntl;
74 use EV; 73 use EV;
75 use IO::AIO; 74 use IO::AIO;
76 75
77 # register the IO::AIO callback with EV 76 # register the IO::AIO callback with EV
78 my $aio_w = EV::io IO::AIO::poll_fileno, EV::READ, \&IO::AIO::poll_cb; 77 my $aio_w = EV::io IO::AIO::poll_fileno, EV::READ, \&IO::AIO::poll_cb;
168use common::sense; 167use common::sense;
169 168
170use base 'Exporter'; 169use base 'Exporter';
171 170
172BEGIN { 171BEGIN {
173 our $VERSION = '4.18'; 172 our $VERSION = 4.2;
174 173
175 our @AIO_REQ = qw(aio_sendfile aio_seek aio_read aio_write aio_open aio_close 174 our @AIO_REQ = qw(aio_sendfile aio_seek aio_read aio_write aio_open aio_close
176 aio_stat aio_lstat aio_unlink aio_rmdir aio_readdir aio_readdirx 175 aio_stat aio_lstat aio_unlink aio_rmdir aio_readdir aio_readdirx
177 aio_scandir aio_symlink aio_readlink aio_realpath aio_sync 176 aio_scandir aio_symlink aio_readlink aio_realpath aio_sync
178 aio_fsync aio_syncfs aio_fdatasync aio_sync_file_range aio_allocate 177 aio_fsync aio_syncfs aio_fdatasync aio_sync_file_range aio_allocate
603 namemax => 255, 602 namemax => 255,
604 frsize => 1024, 603 frsize => 1024,
605 fsid => 1810 604 fsid => 1810
606 } 605 }
607 606
608Here is a (likely partial) list of fsid values used by Linux - it is safe 607Here is a (likely partial - send me updates!) list of fsid values used by
609to hardcode these when the $^O is C<linux>: 608Linux - it is safe to hardcode these when C<$^O> is C<linux>:
610 609
611 0x0000adf5 adfs 610 0x0000adf5 adfs
612 0x0000adff affs 611 0x0000adff affs
613 0x5346414f afs 612 0x5346414f afs
614 0x09041934 anon-inode filesystem 613 0x09041934 anon-inode filesystem
1556passing C<undef> as working directory component of a pathname fails the 1555passing C<undef> as working directory component of a pathname fails the
1557request with C<ENOENT>, there is often no need for error checking in the 1556request with C<ENOENT>, there is often no need for error checking in the
1558C<aio_wd> callback, as future requests using the value will fail in the 1557C<aio_wd> callback, as future requests using the value will fail in the
1559expected way. 1558expected way.
1560 1559
1561If this call isn't available because your OS lacks it or it couldn't be
1562detected, it will be emulated by calling C<fsync> instead.
1563
1564=item IO::AIO::CWD 1560=item IO::AIO::CWD
1565 1561
1566This is a compiletime constant (object) that represents the process 1562This is a compiletime constant (object) that represents the process
1567current working directory. 1563current working directory.
1568 1564
2117=item IO::AIO::tee $r_fh, $w_fh, $length, $flags 2113=item IO::AIO::tee $r_fh, $w_fh, $length, $flags
2118 2114
2119Calls the GNU/Linux C<tee(2)> syscall, see it's manpage and the 2115Calls the GNU/Linux C<tee(2)> syscall, see it's manpage and the
2120description for C<IO::AIO::splice> above for details. 2116description for C<IO::AIO::splice> above for details.
2121 2117
2118=item $actual_size = IO::AIO::pipesize $r_fh[, $new_size]
2119
2120Attempts to query or change the pipe buffer size. Obviously works only
2121on pipes, and currently works only on GNU/Linux systems, and fails with
2122C<-1>/C<ENOSYS> everywhere else. If anybody knows how to influence pipe buffer
2123size on other systems, drop me a note.
2124
2122=back 2125=back
2123 2126
2124=cut 2127=cut
2125 2128
2126min_parallel 8; 2129min_parallel 8;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines