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.251 by root, Wed Feb 11 19:32:36 2015 UTC vs.
Revision 1.255 by root, Thu Jun 25 15:20:11 2015 UTC

394following POSIX and non-POSIX constants are available (missing ones on 394following POSIX and non-POSIX constants are available (missing ones on
395your system are, as usual, C<0>): 395your system are, as usual, C<0>):
396 396
397C<O_ASYNC>, C<O_DIRECT>, C<O_NOATIME>, C<O_CLOEXEC>, C<O_NOCTTY>, C<O_NOFOLLOW>, 397C<O_ASYNC>, C<O_DIRECT>, C<O_NOATIME>, C<O_CLOEXEC>, C<O_NOCTTY>, C<O_NOFOLLOW>,
398C<O_NONBLOCK>, C<O_EXEC>, C<O_SEARCH>, C<O_DIRECTORY>, C<O_DSYNC>, 398C<O_NONBLOCK>, C<O_EXEC>, C<O_SEARCH>, C<O_DIRECTORY>, C<O_DSYNC>,
399C<O_RSYNC>, C<O_SYNC> and C<O_TTY_INIT>. 399C<O_RSYNC>, C<O_SYNC>, C<O_PATH>, C<O_TMPFILE>, and C<O_TTY_INIT>.
400 400
401 401
402=item aio_close $fh, $callback->($status) 402=item aio_close $fh, $callback->($status)
403 403
404Asynchronously close a file and call the callback with the result 404Asynchronously close a file and call the callback with the result
725=item aio_allocate $fh, $mode, $offset, $len, $callback->($status) 725=item aio_allocate $fh, $mode, $offset, $len, $callback->($status)
726 726
727Allocates or frees disk space according to the C<$mode> argument. See the 727Allocates or frees disk space according to the C<$mode> argument. See the
728linux C<fallocate> documentation for details. 728linux C<fallocate> documentation for details.
729 729
730C<$mode> can currently be C<0> or C<IO::AIO::FALLOC_FL_KEEP_SIZE> 730C<$mode> is usually C<0> or C<IO::AIO::FALLOC_FL_KEEP_SIZE> to allocate
731to allocate space, or C<IO::AIO::FALLOC_FL_PUNCH_HOLE | 731space, or C<IO::AIO::FALLOC_FL_PUNCH_HOLE | IO::AIO::FALLOC_FL_KEEP_SIZE>,
732IO::AIO::FALLOC_FL_KEEP_SIZE>, to deallocate a file range. 732to deallocate a file range.
733
734IO::AIO also supports C<FALLOC_FL_COLLAPSE_RANGE>, to remove a range
735(without leaving a hole) and C<FALLOC_FL_ZERO_RANGE>, to zero a range (see
736your L<fallocate(2)> manpage).
733 737
734The file system block size used by C<fallocate> is presumably the 738The file system block size used by C<fallocate> is presumably the
735C<f_bsize> returned by C<statvfs>. 739C<f_bsize> returned by C<statvfs>.
736 740
737If C<fallocate> isn't available or cannot be emulated (currently no 741If C<fallocate> isn't available or cannot be emulated (currently no
2122Attempts to query or change the pipe buffer size. Obviously works only 2126Attempts to query or change the pipe buffer size. Obviously works only
2123on pipes, and currently works only on GNU/Linux systems, and fails with 2127on pipes, and currently works only on GNU/Linux systems, and fails with
2124C<-1>/C<ENOSYS> everywhere else. If anybody knows how to influence pipe buffer 2128C<-1>/C<ENOSYS> everywhere else. If anybody knows how to influence pipe buffer
2125size on other systems, drop me a note. 2129size on other systems, drop me a note.
2126 2130
2131=item ($rfh, $wfh) = IO::AIO::pipe2 [$flags]
2132
2133This is a direct interface to the Linux L<pipe2(2)> system call. If
2134C<$flags> is missing or C<0>, then this should be the same as a call to
2135perl's built-in C<pipe> function and create a new pipe, and works on
2136systems that lack the pipe2 syscall. On win32, this case invokes C<_pipe
2137(..., 4096, O_BINARY)>.
2138
2139If C<$flags> is non-zero, it tries to invoke the pipe2 system call with
2140the given flags (Linux 2.6.27, glibc 2.9).
2141
2142On success, the read and write file handles are returned.
2143
2144On error, nothing will be returned. If the pipe2 syscall is missing and
2145C<$flags> is non-zero, fails with C<ENOSYS>.
2146
2147Please refer to L<pipe2(2)> for more info on the C<$flags>, but at the
2148time of this writing, C<IO::AIO::O_CLOEXEC>, C<IO::AIO::O_NONBLOCK> and
2149C<IO::AIO::O_DIRECT> (Linux 3.4, for packet-based pipes) were supported.
2150
2127=back 2151=back
2128 2152
2129=cut 2153=cut
2130 2154
2131min_parallel 8; 2155min_parallel 8;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines