ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/EV.pm
(Generate patch)

Comparing EV/EV.pm (file contents):
Revision 1.83 by root, Mon Jan 28 12:24:05 2008 UTC vs.
Revision 1.93 by root, Tue May 20 19:52:12 2008 UTC

56=head1 DESCRIPTION 56=head1 DESCRIPTION
57 57
58This module provides an interface to libev 58This module provides an interface to libev
59(L<http://software.schmorp.de/pkg/libev.html>). While the documentation 59(L<http://software.schmorp.de/pkg/libev.html>). While the documentation
60below is comprehensive, one might also consult the documentation of libev 60below is comprehensive, one might also consult the documentation of libev
61itself (L<http://cvs.schmorp.de/libev/ev.html>) for more subtle details on 61itself (L<http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod>) for more
62watcher semantics or some discussion on the available backends, or how to 62subtle details on watcher semantics or some discussion on the available
63force a specific backend with C<LIBEV_FLAGS>, or just about in any case 63backends, or how to force a specific backend with C<LIBEV_FLAGS>, or just
64because it has much more detailed information. 64about in any case because it has much more detailed information.
65
66This module is very fast and scalable. It is actually so fast that you
67can use it through the L<AnyEvent> module, stay portable to other event
68loops (if you don't rely on any watcher types not available through it)
69and still be faster than with any other event loop currently supported in
70Perl.
65 71
66=cut 72=cut
67 73
68package EV; 74package EV;
69 75
70use strict; 76use strict;
71 77
72BEGIN { 78BEGIN {
73 our $VERSION = '3.0'; 79 our $VERSION = '3.4';
74 use XSLoader; 80 use XSLoader;
75 XSLoader::load "EV", $VERSION; 81 XSLoader::load "EV", $VERSION;
76} 82}
77 83
78@EV::IO::ISA = 84@EV::IO::ISA =
84@EV::Idle::ISA = 90@EV::Idle::ISA =
85@EV::Prepare::ISA = 91@EV::Prepare::ISA =
86@EV::Check::ISA = 92@EV::Check::ISA =
87@EV::Embed::ISA = 93@EV::Embed::ISA =
88@EV::Fork::ISA = 94@EV::Fork::ISA =
95@EV::Async::ISA =
89 "EV::Watcher"; 96 "EV::Watcher";
90 97
91@EV::Loop::Default::ISA = "EV::Loop"; 98@EV::Loop::Default::ISA = "EV::Loop";
92 99
93=head1 EVENT LOOPS 100=head1 EVENT LOOPS
533This time simply fires at the wallclock time C<$at> and doesn't repeat. It 540This time simply fires at the wallclock time C<$at> and doesn't repeat. It
534will not adjust when a time jump occurs, that is, if it is to be run 541will not adjust when a time jump occurs, that is, if it is to be run
535at January 1st 2011 then it will run when the system time reaches or 542at January 1st 2011 then it will run when the system time reaches or
536surpasses this time. 543surpasses this time.
537 544
538=item * non-repeating interval timer ($interval > 0, $reschedule_cb = 0) 545=item * repeating interval timer ($interval > 0, $reschedule_cb = 0)
539 546
540In this mode the watcher will always be scheduled to time out at the 547In this mode the watcher will always be scheduled to time out at the
541next C<$at + N * $interval> time (for some integer N) and then repeat, 548next C<$at + N * $interval> time (for some integer N) and then repeat,
542regardless of any time jumps. 549regardless of any time jumps.
543 550
968 975
969The C<embed_ns> variant doesn't start (activate) the newly created watcher. 976The C<embed_ns> variant doesn't start (activate) the newly created watcher.
970 977
971=back 978=back
972 979
980=head3 ASYNC WATCHERS - how to wake up another event loop
981
982Async watchers are provided by EV, but have little use in perl directly, as perl
983neither supports threads nor direct access to signal handlers or other
984contexts where they could be of value.
985
986It is, however, possible to use them from the XS level.
987
988Please see the libev documentation for further details.
989
990=over 4
991
992=item $w = EV::async $callback
993
994=item $w = EV::async_ns $callback
995
996=item $w->send
997
998=item $bool = $w->async_pending
999
1000=back
1001
973 1002
974=head1 PERL SIGNALS 1003=head1 PERL SIGNALS
975 1004
976While Perl signal handling (C<%SIG>) is not affected by EV, the behaviour 1005While Perl signal handling (C<%SIG>) is not affected by EV, the behaviour
977with EV is as the same as any other C library: Perl-signals will only be 1006with EV is as the same as any other C library: Perl-signals will only be
1026 1055
1027=head1 SEE ALSO 1056=head1 SEE ALSO
1028 1057
1029L<EV::ADNS> (asynchronous DNS), L<Glib::EV> (makes Glib/Gtk2 use EV as 1058L<EV::ADNS> (asynchronous DNS), L<Glib::EV> (makes Glib/Gtk2 use EV as
1030event loop), L<EV::Glib> (embed Glib into EV), L<Coro::EV> (efficient 1059event loop), L<EV::Glib> (embed Glib into EV), L<Coro::EV> (efficient
1031coroutines with EV), L<Net::SNMP::EV> (asynchronous SNMP). 1060coroutines with EV), L<Net::SNMP::EV> (asynchronous SNMP), L<AnyEvent> for
1061event-loop agnostic and portable event driven programming.
1032 1062
1033=head1 AUTHOR 1063=head1 AUTHOR
1034 1064
1035 Marc Lehmann <schmorp@schmorp.de> 1065 Marc Lehmann <schmorp@schmorp.de>
1036 http://home.schmorp.de/ 1066 http://home.schmorp.de/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines