--- IO-AIO/AIO.pm 2005/08/16 22:22:18 1.27 +++ IO-AIO/AIO.pm 2005/08/17 04:47:38 1.30 @@ -65,7 +65,7 @@ use Fcntl (); BEGIN { - $VERSION = 1.1; + $VERSION = 1.2; @EXPORT = qw(aio_read aio_write aio_open aio_close aio_stat aio_lstat aio_unlink aio_rmdir aio_symlink aio_fsync aio_fdatasync aio_readahead); @@ -90,10 +90,18 @@ All functions expecting a filehandle keep a copy of the filehandle internally until the request has finished. -The filenames you pass to these routines I be absolute. The reason -for this is that at the time the request is being executed, the current -working directory could have changed. Alternatively, you can make sure -that you never change the current working directory. +The pathnames you pass to these routines I be absolute and +encoded in byte form. The reason for the former is that at the time the +request is being executed, the current working directory could have +changed. Alternatively, you can make sure that you never change the +current working directory. + +To encode pathnames to byte form, either make sure you either: a) +always pass in filenames you got from outside (command line, readdir +etc.), b) are ASCII or ISO 8859-1, c) use the Encode module and encode +your pathnames to the locale (or other) encoding in effect in the user +environment, d) use Glib::filename_from_unicode on unicode filenames or e) +use something else. =over 4 @@ -343,10 +351,12 @@ =head2 FORK BEHAVIOUR -IO::AIO handles all outstanding AIO requests before the fork, destroys all -AIO threads, and recreates them in both the parent and the child after the -fork. - +Before the fork IO::AIO first handles all outstanding requests - if other +threads add requests during this period, this time is prolonged. It then +enters a quiescent state where no requests can be added in other threads +and no results will be processed. After the fork the parent simply leaves +the quiescent state and continues request processing, while the child +starts the same number of threads as were in use by the parent. =head1 SEE ALSO