… | |
… | |
783 | |
783 | |
784 | |
784 | |
785 | =item aio_realpath $pathname, $callback->($path) |
785 | =item aio_realpath $pathname, $callback->($path) |
786 | |
786 | |
787 | Asynchronously make the path absolute and resolve any symlinks in |
787 | Asynchronously make the path absolute and resolve any symlinks in |
788 | C<$path>. The resulting path only consists of directories (Same as |
788 | C<$path>. The resulting path only consists of directories (same as |
789 | L<Cwd::realpath>). |
789 | L<Cwd::realpath>). |
790 | |
790 | |
791 | This request can be used to get the absolute path of the current working |
791 | This request can be used to get the absolute path of the current working |
792 | directory by passing it a path of F<.> (a single dot). |
792 | directory by passing it a path of F<.> (a single dot). |
793 | |
793 | |
… | |
… | |
1181 | } |
1181 | } |
1182 | |
1182 | |
1183 | =item aio_rmtree $pathname, $callback->($status) |
1183 | =item aio_rmtree $pathname, $callback->($status) |
1184 | |
1184 | |
1185 | Delete a directory tree starting (and including) C<$path>, return the |
1185 | Delete a directory tree starting (and including) C<$path>, return the |
1186 | status of the final C<rmdir> only. This is a composite request that |
1186 | status of the final C<rmdir> only. This is a composite request that |
1187 | uses C<aio_scandir> to recurse into and rmdir directories, and unlink |
1187 | uses C<aio_scandir> to recurse into and rmdir directories, and unlink |
1188 | everything else. |
1188 | everything else. |
1189 | |
1189 | |
1190 | =cut |
1190 | =cut |
1191 | |
1191 | |
… | |
… | |
1311 | |
1311 | |
1312 | This is a rather advanced IO::AIO call, which works best on mmap(2)ed |
1312 | This is a rather advanced IO::AIO call, which works best on mmap(2)ed |
1313 | scalars. |
1313 | scalars. |
1314 | |
1314 | |
1315 | It touches (reads or writes) all memory pages in the specified |
1315 | It touches (reads or writes) all memory pages in the specified |
1316 | range inside the scalar. All caveats and parameters are the same |
1316 | range inside the scalar. All caveats and parameters are the same |
1317 | as for C<aio_msync>, above, except for flags, which must be either |
1317 | as for C<aio_msync>, above, except for flags, which must be either |
1318 | C<0> (which reads all pages and ensures they are instantiated) or |
1318 | C<0> (which reads all pages and ensures they are instantiated) or |
1319 | C<IO::AIO::MT_MODIFY>, which modifies the memory page s(by reading and |
1319 | C<IO::AIO::MT_MODIFY>, which modifies the memory pages (by reading and |
1320 | writing an octet from it, which dirties the page). |
1320 | writing an octet from it, which dirties the page). |
1321 | |
1321 | |
1322 | =item aio_mlock $scalar, $offset = 0, $length = undef, $callback->($status) |
1322 | =item aio_mlock $scalar, $offset = 0, $length = undef, $callback->($status) |
1323 | |
1323 | |
1324 | This is a rather advanced IO::AIO call, which works best on mmap(2)ed |
1324 | This is a rather advanced IO::AIO call, which works best on mmap(2)ed |
… | |
… | |
1525 | will still point to the original directory. Most functions accepting a |
1525 | will still point to the original directory. Most functions accepting a |
1526 | pathname will use the directory fd on newer systems, and the string on |
1526 | pathname will use the directory fd on newer systems, and the string on |
1527 | older systems. Some functions (such as realpath) will always rely on the |
1527 | older systems. Some functions (such as realpath) will always rely on the |
1528 | string form of the pathname. |
1528 | string form of the pathname. |
1529 | |
1529 | |
1530 | So this fucntionality is mainly useful to get some protection against |
1530 | So this functionality is mainly useful to get some protection against |
1531 | C<chdir>, to easily get an absolute path out of a relative path for future |
1531 | C<chdir>, to easily get an absolute path out of a relative path for future |
1532 | reference, and to speed up doing many operations in the same directory |
1532 | reference, and to speed up doing many operations in the same directory |
1533 | (e.g. when stat'ing all files in a directory). |
1533 | (e.g. when stat'ing all files in a directory). |
1534 | |
1534 | |
1535 | The following functions implement this working directory abstraction: |
1535 | The following functions implement this working directory abstraction: |
… | |
… | |
1556 | =item IO::AIO::CWD |
1556 | =item IO::AIO::CWD |
1557 | |
1557 | |
1558 | This is a compiletime constant (object) that represents the process |
1558 | This is a compiletime constant (object) that represents the process |
1559 | current working directory. |
1559 | current working directory. |
1560 | |
1560 | |
1561 | Specifying this object as working directory object for a pathname is as |
1561 | Specifying this object as working directory object for a pathname is as if |
1562 | if the pathname would be specified directly, without a directory object, |
1562 | the pathname would be specified directly, without a directory object. For |
1563 | e.g., these calls are functionally identical: |
1563 | example, these calls are functionally identical: |
1564 | |
1564 | |
1565 | aio_stat "somefile", sub { ... }; |
1565 | aio_stat "somefile", sub { ... }; |
1566 | aio_stat [IO::AIO::CWD, "somefile"], sub { ... }; |
1566 | aio_stat [IO::AIO::CWD, "somefile"], sub { ... }; |
1567 | |
1567 | |
1568 | =back |
1568 | =back |
|
|
1569 | |
|
|
1570 | To recover the path associated with an IO::AIO::WD object, you can use |
|
|
1571 | C<aio_realpath>: |
|
|
1572 | |
|
|
1573 | aio_realpath $wd, sub { |
|
|
1574 | warn "path is $_[0]\n"; |
|
|
1575 | }; |
1569 | |
1576 | |
1570 | |
1577 | |
1571 | =head2 IO::AIO::REQ CLASS |
1578 | =head2 IO::AIO::REQ CLASS |
1572 | |
1579 | |
1573 | All non-aggregate C<aio_*> functions return an object of this class when |
1580 | All non-aggregate C<aio_*> functions return an object of this class when |