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

Comparing AnyEvent/lib/AnyEvent.pm (file contents):
Revision 1.181 by root, Sat Sep 6 10:54:32 2008 UTC vs.
Revision 1.185 by root, Thu Oct 2 15:11:01 2008 UTC

825=item L<AnyEvent::IGS> 825=item L<AnyEvent::IGS>
826 826
827A non-blocking interface to the Internet Go Server protocol (used by 827A non-blocking interface to the Internet Go Server protocol (used by
828L<App::IGS>). 828L<App::IGS>).
829 829
830=item L<Net::IRC3> 830=item L<AnyEvent::IRC>
831 831
832AnyEvent based IRC client module family. 832AnyEvent based IRC client module family (replacing the older Net::IRC3).
833 833
834=item L<Net::XMPP2> 834=item L<Net::XMPP2>
835 835
836AnyEvent based XMPP (Jabber protocol) module family. 836AnyEvent based XMPP (Jabber protocol) module family.
837 837
861no warnings; 861no warnings;
862use strict qw(vars subs); 862use strict qw(vars subs);
863 863
864use Carp; 864use Carp;
865 865
866our $VERSION = 4.234; 866our $VERSION = 4.3;
867our $MODEL; 867our $MODEL;
868 868
869our $AUTOLOAD; 869our $AUTOLOAD;
870our @ISA; 870our @ISA;
871 871
1028BEGIN { 1028BEGIN {
1029 if (eval "use Time::HiRes (); time (); 1") { 1029 if (eval "use Time::HiRes (); time (); 1") {
1030 *_time = \&Time::HiRes::time; 1030 *_time = \&Time::HiRes::time;
1031 # if (eval "use POSIX (); (POSIX::times())... 1031 # if (eval "use POSIX (); (POSIX::times())...
1032 } else { 1032 } else {
1033 *_time = \&CORE::time; # epic fail 1033 *_time = sub { time }; # epic fail
1034 } 1034 }
1035} 1035}
1036 1036
1037sub time { _time } 1037sub time { _time }
1038sub now { _time } 1038sub now { _time }
1754watchers, as the management overhead dominates. 1754watchers, as the management overhead dominates.
1755 1755
1756=back 1756=back
1757 1757
1758 1758
1759=head1 SIGNALS
1760
1761AnyEvent currently installs handlers for these signals:
1762
1763=over 4
1764
1765=item SIGCHLD
1766
1767A handler for C<SIGCHLD> is installed by AnyEvent's child watcher
1768emulation for event loops that do not support them natively. Also, some
1769event loops install a similar handler.
1770
1771=item SIGPIPE
1772
1773A no-op handler is installed for C<SIGPIPE> when C<$SIG{PIPE}> is C<undef>
1774when AnyEvent gets loaded.
1775
1776The rationale for this is that AnyEvent users usually do not really depend
1777on SIGPIPE delivery (which is purely an optimisation for shell use, or
1778badly-written programs), but C<SIGPIPE> can cause spurious and rare
1779program exits as a lot of people do not expect C<SIGPIPE> when writing to
1780some random socket.
1781
1782The rationale for installing a no-op handler as opposed to ignoring it is
1783that this way, the handler will be restored to defaults on exec.
1784
1785Feel free to install your own handler, or reset it to defaults.
1786
1787=back
1788
1789=cut
1790
1791$SIG{PIPE} = sub { }
1792 unless defined $SIG{PIPE};
1793
1794
1759=head1 FORK 1795=head1 FORK
1760 1796
1761Most event libraries are not fork-safe. The ones who are usually are 1797Most event libraries are not fork-safe. The ones who are usually are
1762because they rely on inefficient but fork-safe C<select> or C<poll> 1798because they rely on inefficient but fork-safe C<select> or C<poll>
1763calls. Only L<EV> is fully fork-aware. 1799calls. Only L<EV> is fully fork-aware.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines