ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/README
(Generate patch)

Comparing IO-AIO/README (file contents):
Revision 1.27 by root, Sat Oct 6 14:05:37 2007 UTC vs.
Revision 1.28 by root, Sun Mar 30 06:31:49 2008 UTC

24 $req->cancel; # cancel request if still in queue 24 $req->cancel; # cancel request if still in queue
25 25
26 my $grp = aio_group sub { print "all stats done\n" }; 26 my $grp = aio_group sub { print "all stats done\n" };
27 add $grp aio_stat "..." for ...; 27 add $grp aio_stat "..." for ...;
28 28
29 # AnyEvent integration 29 # AnyEvent integration (EV, Event, Glib, Tk, urxvt, pureperl...)
30 open my $fh, "<&=" . IO::AIO::poll_fileno or die "$!"; 30 open my $fh, "<&=" . IO::AIO::poll_fileno or die "$!";
31 my $w = AnyEvent->io (fh => $fh, poll => 'r', cb => sub { IO::AIO::poll_cb }); 31 my $w = AnyEvent->io (fh => $fh, poll => 'r', cb => sub { IO::AIO::poll_cb });
32
33 # EV integration
34 my $w = EV::io IO::AIO::poll_fileno, EV::READ, \&IO::AIO::poll_cb;
32 35
33 # Event integration 36 # Event integration
34 Event->io (fd => IO::AIO::poll_fileno, 37 Event->io (fd => IO::AIO::poll_fileno,
35 poll => 'r', 38 poll => 'r',
36 cb => \&IO::AIO::poll_cb); 39 cb => \&IO::AIO::poll_cb);
546 Delete a directory tree starting (and including) $path, return the 549 Delete a directory tree starting (and including) $path, return the
547 status of the final "rmdir" only. This is a composite request that 550 status of the final "rmdir" only. This is a composite request that
548 uses "aio_scandir" to recurse into and rmdir directories, and unlink 551 uses "aio_scandir" to recurse into and rmdir directories, and unlink
549 everything else. 552 everything else.
550 553
554 aio_sync $callback->($status)
555 Asynchronously call sync and call the callback when finished.
556
551 aio_fsync $fh, $callback->($status) 557 aio_fsync $fh, $callback->($status)
552 Asynchronously call fsync on the given filehandle and call the 558 Asynchronously call fsync on the given filehandle and call the
553 callback with the fsync result code. 559 callback with the fsync result code.
554 560
555 aio_fdatasync $fh, $callback->($status) 561 aio_fdatasync $fh, $callback->($status)
556 Asynchronously call fdatasync on the given filehandle and call the 562 Asynchronously call fdatasync on the given filehandle and call the
557 callback with the fdatasync result code. 563 callback with the fdatasync result code.
558 564
559 If this call isn't available because your OS lacks it or it couldn't 565 If this call isn't available because your OS lacks it or it couldn't
560 be detected, it will be emulated by calling "fsync" instead. 566 be detected, it will be emulated by calling "fsync" instead.
567
568 aio_pathsync $path, $callback->($status)
569 This request tries to open, fsync and close the given path. This is
570 a composite request intended tosync directories after directory
571 operations (E.g. rename). This might not work on all operating
572 systems or have any specific effect, but usually it makes sure that
573 directory changes get written to disc. It works for anything that
574 can be opened for read-only, not just directories.
575
576 Passes 0 when everything went ok, and -1 on error.
561 577
562 aio_group $callback->(...) 578 aio_group $callback->(...)
563 This is a very special aio request: Instead of doing something, it 579 This is a very special aio request: Instead of doing something, it
564 is a container for other aio requests, which is useful if you want 580 is a container for other aio requests, which is useful if you want
565 to bundle many requests into a single, composite, request with a 581 to bundle many requests into a single, composite, request with a
647 }; 663 };
648 664
649 This makes it very easy to create composite requests (see the source of 665 This makes it very easy to create composite requests (see the source of
650 "aio_move" for an application) that work and feel like simple requests. 666 "aio_move" for an application) that work and feel like simple requests.
651 667
652 * The IO::AIO::GRP objects will be cleaned up during calls to 668 * The IO::AIO::GRP objects will be cleaned up during calls to
653 "IO::AIO::poll_cb", just like any other request. 669 "IO::AIO::poll_cb", just like any other request.
670
654 * They can be canceled like any other request. Canceling will cancel not 671 * They can be canceled like any other request. Canceling will cancel
655 only the request itself, but also all requests it contains. 672 not only the request itself, but also all requests it contains.
673
656 * They can also can also be added to other IO::AIO::GRP objects. 674 * They can also can also be added to other IO::AIO::GRP objects.
675
657 * You must not add requests to a group from within the group callback 676 * You must not add requests to a group from within the group callback
658 (or any later time). 677 (or any later time).
659 678
660 Their lifetime, simplified, looks like this: when they are empty, they 679 Their lifetime, simplified, looks like this: when they are empty, they
661 will finish very quickly. If they contain only requests that are in the 680 will finish very quickly. If they contain only requests that are in the
662 "done" state, they will also finish. Otherwise they will continue to 681 "done" state, they will also finish. Otherwise they will continue to
663 exist. 682 exist.
680 request itself. Useful when you queued a lot of events but got a 699 request itself. Useful when you queued a lot of events but got a
681 result early. 700 result early.
682 701
683 $grp->result (...) 702 $grp->result (...)
684 Set the result value(s) that will be passed to the group callback 703 Set the result value(s) that will be passed to the group callback
685 when all subrequests have finished and set thre groups errno to the 704 when all subrequests have finished and set the groups errno to the
686 current value of errno (just like calling "errno" without an error 705 current value of errno (just like calling "errno" without an error
687 number). By default, no argument will be passed and errno is zero. 706 number). By default, no argument will be passed and errno is zero.
688 707
689 $grp->errno ([$errno]) 708 $grp->errno ([$errno])
690 Sets the group errno value to $errno, or the current value of errno 709 Sets the group errno value to $errno, or the current value of errno

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines