r5079 - in
/packages/libio-multiplex-perl/branches/upstream/current: Changes
lib/IO/Multiplex.pm
gregoa-guest at users.alioth.debian.org
gregoa-guest at users.alioth.debian.org
Fri Apr 13 21:53:10 UTC 2007
Author: gregoa-guest
Date: Fri Apr 13 21:53:10 2007
New Revision: 5079
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=5079
Log:
[svn-upgrade] Integrating new upstream version, libio-multiplex-perl (1.09)
Modified:
packages/libio-multiplex-perl/branches/upstream/current/Changes
packages/libio-multiplex-perl/branches/upstream/current/lib/IO/Multiplex.pm
Modified: packages/libio-multiplex-perl/branches/upstream/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-multiplex-perl/branches/upstream/current/Changes?rev=5079&op=diff
==============================================================================
--- packages/libio-multiplex-perl/branches/upstream/current/Changes (original)
+++ packages/libio-multiplex-perl/branches/upstream/current/Changes Fri Apr 13 21:53:10 2007
@@ -1,4 +1,9 @@
Revision history for Perl extension IO::Multiplex.
+
+1.09 Sat Mar 03 2007
+ - Detect readability for special IO::Socket::SSL
+ handles more accurately.
+ - Avoid "freed value in iteration" crashing.
1.08 Fri Nov 11 2003
- Solaris/FreeBSD compatibility fixes.
Modified: packages/libio-multiplex-perl/branches/upstream/current/lib/IO/Multiplex.pm
URL: http://svn.debian.org/wsvn/pkg-perl/packages/libio-multiplex-perl/branches/upstream/current/lib/IO/Multiplex.pm?rev=5079&op=diff
==============================================================================
--- packages/libio-multiplex-perl/branches/upstream/current/lib/IO/Multiplex.pm (original)
+++ packages/libio-multiplex-perl/branches/upstream/current/lib/IO/Multiplex.pm Fri Apr 13 21:53:10 2007
@@ -270,7 +270,7 @@
use Fcntl;
use Carp qw(carp);
-$VERSION = '1.08';
+$VERSION = '1.09';
BEGIN {
eval {
@@ -569,29 +569,40 @@
while (!$self->{_endloop} && keys %{$self->{_fhs}}) {
my $rv;
my $data;
- my $rdready;
- my $wrready;
+ my $rdready = "";
+ my $wrready = "";
my $timeout = undef;
- if (@{$self->{_timers}}) {
- $timeout = $self->{_timers}[0][1] - time;
+ foreach my $fh (values %{$self->{_handles}}) {
+ fd_set($rdready, $fh, 1) if
+ ref($fh) =~ /SSL/ &&
+ $fh->can("pending") &&
+ $fh->pending;
}
- my $numready = select($rdready=$self->{_readers},
- $wrready=$self->{_writers},
- undef,
- $timeout);
-
- unless(defined($numready)) {
- if ($! == EINTR || $! == EAGAIN) {
- next;
- } else {
- last;
+ if (!length $rdready) {
+ if (@{$self->{_timers}}) {
+ $timeout = $self->{_timers}[0][1] - time;
+ }
+
+ my $numready = select($rdready=$self->{_readers},
+ $wrready=$self->{_writers},
+ undef,
+ $timeout);
+
+ unless(defined($numready)) {
+ if ($! == EINTR || $! == EAGAIN) {
+ next;
+ } else {
+ last;
+ }
}
}
+
&{ $heartbeat } ($rdready, $wrready) if $heartbeat;
- foreach my $fh (values %{$self->{_handles}}) {
+ foreach my $k (keys %{$self->{_handles}}) {
+ my $fh = $self->{_handles}->{$k} or next;
# Avoid creating a permanent empty hash ref for "$fh"
# by attempting to access its {object} element
# if it has already been closed.
@@ -1074,4 +1085,6 @@
Released under the terms of the Artistic License.
-=cut
+$Id: Multiplex.pm,v 1.33 2007/03/04 05:39:16 rob Exp $
+
+=cut
More information about the Pkg-perl-cvs-commits
mailing list