r40427 - in /branches/upstream/libanyevent-perl/current: ./ lib/ lib/AnyEvent/ lib/AnyEvent/Impl/ t/

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Tue Jul 21 18:59:00 UTC 2009


Author: jawnsy-guest
Date: Tue Jul 21 18:58:44 2009
New Revision: 40427

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=40427
Log:
[svn-upgrade] Integrating new upstream version, libanyevent-perl (4.860)

Modified:
    branches/upstream/libanyevent-perl/current/Changes
    branches/upstream/libanyevent-perl/current/MANIFEST
    branches/upstream/libanyevent-perl/current/META.yml
    branches/upstream/libanyevent-perl/current/Makefile.PL
    branches/upstream/libanyevent-perl/current/README
    branches/upstream/libanyevent-perl/current/lib/AnyEvent.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/DNS.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Handle.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Event.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/EventLib.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/IOAsync.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Perl.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Tk.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Socket.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/TLS.pm
    branches/upstream/libanyevent-perl/current/lib/AnyEvent/Util.pm
    branches/upstream/libanyevent-perl/current/t/03_child.t

Modified: branches/upstream/libanyevent-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/Changes?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/Changes (original)
+++ branches/upstream/libanyevent-perl/current/Changes Tue Jul 21 18:58:44 2009
@@ -1,4 +1,13 @@
 Revision history for Perl extension AnyEvent.
+
+4.86 Mon Jul 20 23:52:29 CEST 2009
+	- since the verbose warning is not enough, explicitly document
+          that versions before 1.33 of Net::SSLeay are not secure.
+	- work around signal handling races in Event and (...) Event::Lib.
+        - try to align signal-race timer to full-second boundaries.
+        - work around Tk not liking negative timeouts.
+        - don't complain of different grades of environmental unfriendlyness
+          in IO::ASync.
 
 4.85 Sat Jul 18 06:16:14 CEST 2009
         - nail the signal race problem in perl once and for all

Modified: branches/upstream/libanyevent-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/MANIFEST?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/MANIFEST (original)
+++ branches/upstream/libanyevent-perl/current/MANIFEST Tue Jul 21 18:58:44 2009
@@ -44,5 +44,4 @@
 eg/handle
 eg/ae0.pl
 eg/ae2.pl
-
 META.yml                                 Module meta-data (added by MakeMaker)

Modified: branches/upstream/libanyevent-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/META.yml?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/META.yml (original)
+++ branches/upstream/libanyevent-perl/current/META.yml Tue Jul 21 18:58:44 2009
@@ -11,7 +11,7 @@
    },
    "generated_by" : "ExtUtils::MakeMaker version 6.50",
    "distribution_type" : "module",
-   "version" : "4.85",
+   "version" : "4.86",
    "name" : "AnyEvent",
    "author" : [],
    "license" : "unknown",

Modified: branches/upstream/libanyevent-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/Makefile.PL?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/Makefile.PL (original)
+++ branches/upstream/libanyevent-perl/current/Makefile.PL Tue Jul 21 18:58:44 2009
@@ -7,14 +7,16 @@
 ***
 *** The EV module is recommended for even better performance, unless you
 *** have to use one of the other adaptors (Event, Glib, Tk, etc.).
+*** The Async::Interrupt module is highly recommended to efficiently avoid
+*** race conditions in/with other event loops.
 ***
 *** This module does not have ANY dependencies, even if it might look
 *** otherwise. If you are building a distribution package or have
 *** difficulties installing this package due to dependencies, report this
 *** to the packager as a bug.
 ***
-*** This module is guaranteed to stay pure-perl and still be full-featured
-*** and performant, even without any optionally recommended modules.
+*** This module is guaranteed to stay 100% pure-perl, full-featured
+*** and performant, even without any of the optional modules.
 ***
 
 EOF

Modified: branches/upstream/libanyevent-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/README?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/README (original)
+++ branches/upstream/libanyevent-perl/current/README Tue Jul 21 18:58:44 2009
@@ -1,5 +1,5 @@
 NAME
-    AnyEvent - provide framework for multiple event loops
+    AnyEvent - events independent of event loop implementation
 
     EV, Event, Glib, Tk, Perl, Event::Lib, Qt and POE are various supported
     event loops.
@@ -39,6 +39,13 @@
     This manpage is mainly a reference manual. If you are interested in a
     tutorial or some gentle introduction, have a look at the AnyEvent::Intro
     manpage.
+
+SUPPORT
+    There is a mailinglist for discussing all things AnyEvent, and an IRC
+    channel, too.
+
+    See the AnyEvent project page at the Schmorpforge Ta-Sa Software
+    Respository, at <http://anyevent.schmorp.de>, for more info.
 
 WHY YOU SHOULD USE THIS MODULE (OR NOT)
     Glib, POE, IO::Async, Event... CPAN offers event models by the dozen
@@ -359,20 +366,24 @@
     programs overwriting those signals directly will likely not work
     correctly.
 
-    Also note that many event loops (e.g. Glib, Tk, Qt, IO::Async) do not
-    support attaching callbacks to signals, which is a pity, as you cannot
-    do race-free signal handling in perl. AnyEvent will try to do it's best,
+    Example: exit on SIGINT
+
+       my $w = AnyEvent->signal (signal => "INT", cb => sub { exit 1 });
+
+   Signal Races, Delays and Workarounds
+    Many event loops (e.g. Glib, Tk, Qt, IO::Async) do not support attaching
+    callbacks to signals in a generic way, which is a pity, as you cannot do
+    race-free signal handling in perl. AnyEvent will try to do it's best,
     but in some cases, signals will be delayed. The maximum time a signal
     might be delayed is specified in $AnyEvent::MAX_SIGNAL_LATENCY (default:
     10 seconds). This variable can be changed only before the first signal
     watcher is created, and should be left alone otherwise. Higher values
     will cause fewer spurious wake-ups, which is better for power and CPU
     saving. All these problems can be avoided by installing the optional
-    Async::Interrupt module.
-
-    Example: exit on SIGINT
-
-       my $w = AnyEvent->signal (signal => "INT", cb => sub { exit 1 });
+    Async::Interrupt module. This will not work with inherently broken event
+    loops such as Event or Event::Lib (and not with POE currently, as POE
+    does it's own workaround with one-second latency). With those, you just
+    have to suffer the delays.
 
   CHILD PROCESS WATCHERS
     You can also watch on a child process exit and catch its exit status.
@@ -492,7 +503,8 @@
     in time where multiple outstanding events have been processed. And yet
     another way to call them is transactions - each condition variable can
     be used to represent a transaction, which finishes at some point and
-    delivers a result.
+    delivers a result. And yet some people know them as "futures" - a
+    promise to compute/deliver something that you can wait for.
 
     Condition variables are very useful to signal that something has
     finished, for example, if you write a module that does asynchronous http
@@ -1646,7 +1658,7 @@
         handling: To my knowledge, there is no way to do completely
         race-free and quick signal handling in pure perl. To ensure that
         signals still get delivered, AnyEvent will start an interval timer
-        to wake up perl (and catch the signals) with soemd elay (default is
+        to wake up perl (and catch the signals) with some delay (default is
         10 seconds, look for $AnyEvent::MAX_SIGNAL_LATENCY).
 
         If this module is available, then it will be used to implement
@@ -1656,6 +1668,11 @@
 
         This affects not just the pure-perl event loop, but also other event
         loops that have no signal handling on their own (e.g. Glib, Tk, Qt).
+
+        Some event loops (POE, Event, Event::Lib) offer signal watchers
+        natively, and either employ their own workarounds (POE) or use
+        AnyEvent's workaround (using $AnyEvent::MAX_SIGNAL_LATENCY).
+        Installing Async::Interrupt does nothing for those backends.
 
     EV  This module isn't really "optional", as it is simply one of the
         backend event loops that AnyEvent can use. However, it is simply the
@@ -1676,7 +1693,7 @@
     JSON and JSON::XS
         This module is required when you want to read or write JSON data via
         AnyEvent::Handle. It is also written in pure-perl, but can take
-        advantage of the ulta-high-speed JSON::XS module when it is
+        advantage of the ultra-high-speed JSON::XS module when it is
         installed.
 
         In fact, AnyEvent::Handle will use JSON::XS by default if it is

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent.pm Tue Jul 21 18:58:44 2009
@@ -1,6 +1,6 @@
 =head1 NAME
 
-AnyEvent - provide framework for multiple event loops 
+AnyEvent - events independent of event loop implementation
 
 EV, Event, Glib, Tk, Perl, Event::Lib, Qt and POE are various supported
 event loops.
@@ -42,6 +42,14 @@
 This manpage is mainly a reference manual. If you are interested
 in a tutorial or some gentle introduction, have a look at the
 L<AnyEvent::Intro> manpage.
+
+=head1 SUPPORT
+
+There is a mailinglist for discussing all things AnyEvent, and an IRC
+channel, too.
+
+See the AnyEvent project page at the B<Schmorpforge Ta-Sa Software
+Respository>, at L<http://anyevent.schmorp.de>, for more info.
 
 =head1 WHY YOU SHOULD USE THIS MODULE (OR NOT)
 
@@ -370,8 +378,14 @@
 so programs overwriting those signals directly will likely not work
 correctly.
 
-Also note that many event loops (e.g. Glib, Tk, Qt, IO::Async) do not
-support attaching callbacks to signals, which is a pity, as you cannot do
+Example: exit on SIGINT
+
+   my $w = AnyEvent->signal (signal => "INT", cb => sub { exit 1 });
+
+=head3 Signal Races, Delays and Workarounds
+
+Many event loops (e.g. Glib, Tk, Qt, IO::Async) do not support attaching
+callbacks to signals in a generic way, which is a pity, as you cannot do
 race-free signal handling in perl. AnyEvent will try to do it's best, but
 in some cases, signals will be delayed. The maximum time a signal might
 be delayed is specified in C<$AnyEvent::MAX_SIGNAL_LATENCY> (default: 10
@@ -379,11 +393,10 @@
 watcher is created, and should be left alone otherwise. Higher values
 will cause fewer spurious wake-ups, which is better for power and CPU
 saving. All these problems can be avoided by installing the optional
-L<Async::Interrupt> module.
-
-Example: exit on SIGINT
-
-   my $w = AnyEvent->signal (signal => "INT", cb => sub { exit 1 });
+L<Async::Interrupt> module. This will not work with inherently broken
+event loops such as L<Event> or L<Event::Lib> (and not with L<POE>
+currently, as POE does it's own workaround with one-second latency). With
+those, you just have to suffer the delays.
 
 =head2 CHILD PROCESS WATCHERS
 
@@ -506,7 +519,8 @@
 in time where multiple outstanding events have been processed. And yet
 another way to call them is transactions - each condition variable can be
 used to represent a transaction, which finishes at some point and delivers
-a result.
+a result. And yet some people know them as "futures" - a promise to
+compute/deliver something that you can wait for.
 
 Condition variables are very useful to signal that something has finished,
 for example, if you write a module that does asynchronous http requests,
@@ -1055,7 +1069,7 @@
 
 use Carp ();
 
-our $VERSION = 4.85;
+our $VERSION = 4.86;
 our $MODEL;
 
 our $AUTOLOAD;
@@ -1272,6 +1286,25 @@
    }
 }
 
+# install a dumym wakeupw atcher to reduce signal catching latency
+sub _sig_add() {
+   unless ($SIG_COUNT++) {
+      # try to align timer on a full-second boundary, if possible
+      my $NOW = AnyEvent->now;
+
+      $SIG_TW = AnyEvent->timer (
+         after    => $MAX_SIGNAL_LATENCY - ($NOW - int $NOW),
+         interval => $MAX_SIGNAL_LATENCY,
+         cb       => sub { }, # just for the PERL_ASYNC_CHECK
+      );
+   }
+}
+
+sub _sig_del {
+   undef $SIG_TW
+      unless --$SIG_COUNT;
+}
+
 sub _signal {
    my (undef, %arg) = @_;
 
@@ -1305,12 +1338,7 @@
 
       # can't do signal processing without introducing races in pure perl,
       # so limit the signal latency.
-      ++$SIG_COUNT;
-      $SIG_TW ||= AnyEvent->timer (
-         after    => $MAX_SIGNAL_LATENCY,
-         interval => $MAX_SIGNAL_LATENCY,
-         cb       => sub { }, # just for the PERL_ASYNC_CHECK
-      );
+      _sig_add;
    }
 
    bless [$signal, $arg{cb}], "AnyEvent::Base::signal"
@@ -1359,8 +1387,7 @@
 sub AnyEvent::Base::signal::DESTROY {
    my ($signal, $cb) = @{$_[0]};
 
-   undef $SIG_TW
-      unless --$SIG_COUNT;
+   _sig_del;
 
    delete $SIG_CB{$signal}{$cb};
 
@@ -2259,7 +2286,7 @@
 my knowledge, there is no way to do completely race-free and quick
 signal handling in pure perl. To ensure that signals still get
 delivered, AnyEvent will start an interval timer to wake up perl (and
-catch the signals) with soemd elay (default is 10 seconds, look for
+catch the signals) with some delay (default is 10 seconds, look for
 C<$AnyEvent::MAX_SIGNAL_LATENCY>).
 
 If this module is available, then it will be used to implement signal
@@ -2269,6 +2296,11 @@
 
 This affects not just the pure-perl event loop, but also other event loops
 that have no signal handling on their own (e.g. Glib, Tk, Qt).
+
+Some event loops (POE, Event, Event::Lib) offer signal watchers natively,
+and either employ their own workarounds (POE) or use AnyEvent's workaround
+(using C<$AnyEvent::MAX_SIGNAL_LATENCY>). Installing L<Async::Interrupt>
+does nothing for those backends.
 
 =item L<EV>
 
@@ -2292,7 +2324,7 @@
 
 This module is required when you want to read or write JSON data via
 L<AnyEvent::Handle>. It is also written in pure-perl, but can take
-advantage of the ulta-high-speed L<JSON::XS> module when it is installed.
+advantage of the ultra-high-speed L<JSON::XS> module when it is installed.
 
 In fact, L<AnyEvent::Handle> will use L<JSON::XS> by default if it is
 installed.

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/DNS.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/DNS.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/DNS.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/DNS.pm Tue Jul 21 18:58:44 2009
@@ -34,7 +34,7 @@
 use AnyEvent (); BEGIN { AnyEvent::common_sense }
 use AnyEvent::Util qw(AF_INET6);
 
-our $VERSION = 4.85;
+our $VERSION = 4.86;
 
 our @DNS_FALLBACK = (v208.67.220.220, v208.67.222.222);
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Handle.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Handle.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Handle.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Handle.pm Tue Jul 21 18:58:44 2009
@@ -13,7 +13,7 @@
 
 =cut
 
-our $VERSION = 4.85;
+our $VERSION = 4.86;
 
 =head1 SYNOPSIS
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Event.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Event.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Event.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Event.pm Tue Jul 21 18:58:44 2009
@@ -16,7 +16,8 @@
 creating the first AnyEvent watcher.
 
 The event module is reasonably efficient and generally works correctly
-even with many watchers.
+even with many watchers, except that it's signal handling is inherently
+racy and requires the wake-up-frequently workaround.
 
 =cut
 
@@ -26,33 +27,41 @@
 use Event qw(unloop); # we have to import something to make Event use Time::HiRes
 
 sub io {
-   my ($class, %arg) = @_;
+   my (undef, %arg) = @_;
    $arg{fd} = delete $arg{fh};
    $arg{poll} .= "e" if AnyEvent::WIN32; # work around windows connect bug
    my $cb = $arg{cb}; $arg{cb} = sub { &$cb }; # event doesn't like callable objects
-   bless \(Event->io (%arg)), $class
+   bless \(Event->io (%arg)), __PACKAGE__
 }
 
 sub timer {
-   my ($class, %arg) = @_;
+   my (undef, %arg) = @_;
    $arg{after} = 0 if $arg{after} < 0;
    my $cb = $arg{cb}; $arg{cb} = sub { &$cb }; # event doesn't like callable objects
-   bless \Event->timer (%arg, repeat => $arg{interval}), $class
+   bless \Event->timer (%arg, repeat => $arg{interval}), __PACKAGE__
+}
+
+sub idle {
+   my (undef, %arg) = @_;
+   my $cb = $arg{cb}; $arg{cb} = sub { &$cb }; # event doesn't like callable objects
+   bless \Event->idle (repeat => 1, min => 0, %arg), __PACKAGE__
+}
+
+sub DESTROY {
+   ${$_[0]}->cancel;
 }
 
 sub signal {
-   my ($class, %arg) = @_;
+   my (undef, %arg) = @_;
    my $cb = $arg{cb}; $arg{cb} = sub { &$cb }; # event doesn't like callable objects
-   bless \Event->signal (%arg), $class
+   my $w = Event->signal (%arg);
+
+   AnyEvent::Base::_sig_add;
+   bless \$w, "AnyEvent::Impl::Event::signal"
 }
 
-sub idle {
-   my ($class, %arg) = @_;
-   my $cb = $arg{cb}; $arg{cb} = sub { &$cb }; # event doesn't like callable objects
-   bless \Event->idle (repeat => 1, min => 0, %arg), $class
-}
-
-sub DESTROY {
+sub AnyEvent::Impl::Event::signal::DESTROY {
+   AnyEvent::Base::_sig_del;
    ${$_[0]}->cancel;
 }
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/EventLib.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/EventLib.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/EventLib.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/EventLib.pm Tue Jul 21 18:58:44 2009
@@ -63,7 +63,7 @@
 my $ccb = \&ccb;
 
 sub io {
-   my ($class, %arg) = @_;
+   my (undef, %arg) = @_;
 
    # work around these bugs in Event::Lib:
    # - adding a callback might destroy other callbacks
@@ -74,11 +74,11 @@
    # fortunately, going through %arg/_dupfh already makes a copy, so it happpens to work
    my $w = event_new $fh, $mode | EV_PERSIST, $ccb, $arg{cb};
    event_add $w;
-   bless \\$w, $class
+   bless \\$w, __PACKAGE__
 }
 
 sub timer {
-   my ($class, %arg) = @_;
+   my (undef, %arg) = @_;
 
    my $ival = $arg{interval};
    my $cb   = $arg{cb};
@@ -90,20 +90,26 @@
 
    event_add $w, $arg{after} || 1e-10; # work around 0-bug in Event::Lib
 
-   bless \\$w, $class
-}
-
-sub signal {
-   my ($class, %arg) = @_;
-
-   my $w = signal_new AnyEvent::Util::sig2num $arg{signal}, $ccb, $arg{cb};
-   event_add $w;
-   bless \\$w, $class
+   bless \\$w, __PACKAGE__
 }
 
 sub DESTROY {
    local $@;
+   ${${$_[0]}}->remove;
+}
 
+sub signal {
+   my (undef, %arg) = @_;
+
+   my $w = signal_new AnyEvent::Util::sig2num $arg{signal}, $ccb, $arg{cb};
+   event_add $w;
+   AnyEvent::Base::_sig_add;
+   bless \\$w, "AnyEvent::Impl::EventLib::signal"
+}
+
+sub AnyEvent::Impl::EventLib::signal::DESTROY {
+   AnyEvent::Base::_sig_del;
+   local $@;
    ${${$_[0]}}->remove;
 }
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/IOAsync.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/IOAsync.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/IOAsync.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/IOAsync.pm Tue Jul 21 18:58:44 2009
@@ -122,16 +122,6 @@
 callback is registered, so you have no idea where in your code you passed
 it in), as the code checks explicitly for code references, disallowing
 callable objects.
-
-=item Environmentally unfriendly
-
-IO::Async wakes up your process every second, when you have any signal
-watchers registered. That's bad from a power savings perspective,
-especially as those wake-ups are spread randomly (imagine 20 perl
-programs on your laptop and you have a 20 Hz timer that takes your CPU
-out of its power save mode that often), and completely unnecessary, when
-signals are implemented properly (instead of relying on Linux-specific
-L<IO::Async::Loop::IO_Ppoll>-style hacks).
 
 =item Unpleasant surprises on GNU/Linux
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Perl.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Perl.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Perl.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Perl.pm Tue Jul 21 18:58:44 2009
@@ -110,7 +110,7 @@
 use AnyEvent (); BEGIN { AnyEvent::common_sense }
 use AnyEvent::Util ();
 
-our $VERSION = 4.85;
+our $VERSION = 4.86;
 
 our ($NOW, $MNOW);
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Tk.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Tk.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Tk.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Impl/Tk.pm Tue Jul 21 18:58:44 2009
@@ -85,6 +85,7 @@
 sub timer {
    my (undef, %arg) = @_;
    
+   my $after = $arg{after} < 0 ? 0 : $arg{after} * 1000;
    my $cb = $arg{cb};
    my $id;
 
@@ -94,10 +95,10 @@
          $id = Tk::after $mw, $ival, [$_[0], $_[0]];
          &$cb;
       };
-      $id = Tk::after $mw, $arg{after} * 1000, [$rcb, $rcb];
+      $id = Tk::after $mw, $after, [$rcb, $rcb];
    } else {
       # tk blesses $cb, thus the extra indirection
-      $id = Tk::after $mw, $arg{after} * 1000, sub { &$cb };
+      $id = Tk::after $mw, $after, sub { &$cb };
    }
 
    bless \\$id, "AnyEvent::Impl::Tk::after"

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Socket.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Socket.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Socket.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Socket.pm Tue Jul 21 18:58:44 2009
@@ -58,7 +58,7 @@
    tcp_connect
 );
 
-our $VERSION = 4.85;
+our $VERSION = 4.86;
 
 =item $ipn = parse_ipv4 $dotted_quad
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/TLS.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/TLS.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/TLS.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/TLS.pm Tue Jul 21 18:58:44 2009
@@ -14,7 +14,7 @@
 
 =cut
 
-our $VERSION = 4.85;
+our $VERSION = 4.86;
 
 =head1 SYNOPSIS
 
@@ -70,6 +70,12 @@
 at some future point, at which this API will change dramatically, at least
 in the Net::SSLeay-specific parts (most constructor arguments should still
 work, though).
+
+Although this module does not require a specific version of Net::SSLeay,
+many features will gradually stop working, or bugs will be introduced with
+old versions (verification might succeed when it shouldn't - this is a
+real security issue). Version 1.35 is recommended, 1.33 should work, 1.32
+might, and older versions are yours to keep.
 
 =head1 USAGE EXAMPLES
 

Modified: branches/upstream/libanyevent-perl/current/lib/AnyEvent/Util.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/lib/AnyEvent/Util.pm?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/lib/AnyEvent/Util.pm (original)
+++ branches/upstream/libanyevent-perl/current/lib/AnyEvent/Util.pm Tue Jul 21 18:58:44 2009
@@ -31,7 +31,7 @@
 our @EXPORT = qw(fh_nonblocking guard fork_call portable_pipe portable_socketpair);
 our @EXPORT_OK = qw(AF_INET6 WSAEWOULDBLOCK WSAEINPROGRESS WSAEINVAL);
 
-our $VERSION = 4.85;
+our $VERSION = 4.86;
 
 BEGIN {
    my $af_inet6 = eval { local $SIG{__DIE__}; &Socket::AF_INET6 };

Modified: branches/upstream/libanyevent-perl/current/t/03_child.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libanyevent-perl/current/t/03_child.t?rev=40427&op=diff
==============================================================================
--- branches/upstream/libanyevent-perl/current/t/03_child.t (original)
+++ branches/upstream/libanyevent-perl/current/t/03_child.t Tue Jul 21 18:58:44 2009
@@ -1,9 +1,6 @@
 use POSIX ();
 
 no warnings;
-
-use AnyEvent;
-use AnyEvent::Impl::Perl;
 
 BEGIN {
    # check for broken perls
@@ -14,18 +11,21 @@
 
       unless ($ok) {
          print <<EOF;
-1..0 # Your perl interpreter is badly BROKEN. Child watchers will not work, ever. Try upgrading to a newer perl or a working perl (cygwin's perl is known to work). If that is not an option, you should be able to use the remaining functionality of AnyEvent, but child watchers WILL NOT WORK.
+1..0 # SKIP Your perl interpreter is badly BROKEN. Child watchers will not work, ever. Try upgrading to a newer perl or a working perl (cygwin's perl is known to work). If that is not an option, you should be able to use the remaining functionality of AnyEvent, but child watchers WILL NOT WORK.
 EOF
          exit 0;
       }
    }
 }
 
+use AnyEvent;
+use AnyEvent::Impl::Perl;
+
 $| = 1; print "1..50\n";
 
+$AnyEvent::MAX_SIGNAL_LATENCY = 0.2;
+
 for my $it ("", 1, 2, 3, 4) {
-   $AnyEvent::MAX_SIGNAL_LATENCY = 1;
-
    print "ok ${it}1\n";
 
    AnyEvent::detect; # force-load event model




More information about the Pkg-perl-cvs-commits mailing list