summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgregor herrmann <gregoa@debian.org>2022-08-19 18:04:03 +0200
committergregor herrmann <gregoa@debian.org>2022-08-19 18:04:03 +0200
commitc90329ba62edd882e86ea508812fd8a835c9ba61 (patch)
treea55617def49caa2940643930eeac54c784a9b60c
parenta8cd3c56ca2505161ef060de816cf659d647c3e9 (diff)
New upstream version 0.802
-rw-r--r--Changes14
-rw-r--r--LICENSE18
-rw-r--r--MANIFEST8
-rw-r--r--META.json74
-rw-r--r--META.yml72
-rw-r--r--lib/IO/Async.pm2
-rw-r--r--lib/IO/Async/Channel.pm2
-rw-r--r--lib/IO/Async/Debug.pm2
-rw-r--r--lib/IO/Async/File.pm2
-rw-r--r--lib/IO/Async/FileStream.pm2
-rw-r--r--lib/IO/Async/Function.pm2
-rw-r--r--lib/IO/Async/Future.pm24
-rw-r--r--lib/IO/Async/Handle.pm2
-rw-r--r--lib/IO/Async/Internals/ChildManager.pm2
-rw-r--r--lib/IO/Async/Internals/Connector.pm2
-rw-r--r--lib/IO/Async/Internals/FunctionWorker.pm2
-rw-r--r--lib/IO/Async/Listener.pm2
-rw-r--r--lib/IO/Async/Loop.pm2
-rw-r--r--lib/IO/Async/Loop/Poll.pm2
-rw-r--r--lib/IO/Async/Loop/Select.pm2
-rw-r--r--lib/IO/Async/LoopTests.pm6
-rw-r--r--lib/IO/Async/Notifier.pm3
-rw-r--r--lib/IO/Async/OS.pm2
-rw-r--r--lib/IO/Async/OS/MSWin32.pm2
-rw-r--r--lib/IO/Async/OS/cygwin.pm2
-rw-r--r--lib/IO/Async/OS/linux.pm2
-rw-r--r--lib/IO/Async/PID.pm2
-rw-r--r--lib/IO/Async/Process.pm2
-rw-r--r--lib/IO/Async/Protocol.pm2
-rw-r--r--lib/IO/Async/Protocol/LineStream.pm2
-rw-r--r--lib/IO/Async/Protocol/Stream.pm2
-rw-r--r--lib/IO/Async/Resolver.pm2
-rw-r--r--lib/IO/Async/Routine.pm2
-rw-r--r--lib/IO/Async/Signal.pm2
-rw-r--r--lib/IO/Async/Socket.pm2
-rw-r--r--lib/IO/Async/Stream.pm2
-rw-r--r--lib/IO/Async/Test.pm8
-rw-r--r--lib/IO/Async/Timer.pm2
-rw-r--r--lib/IO/Async/Timer/Absolute.pm2
-rw-r--r--lib/IO/Async/Timer/Countdown.pm2
-rw-r--r--lib/IO/Async/Timer/Periodic.pm2
-rw-r--r--t/50resolver.t2
42 files changed, 163 insertions, 130 deletions
diff --git a/Changes b/Changes
index 7b36255..cfd85c7 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,19 @@
Revision history for IO-Async
+0.802 2022-08-15
+ [CHANGES]
+ * Preƫmptively use Future ->udata API from upcoming release, to
+ avoid depending on it being a hashref
+ * Report correct caller file + line number in nested test calls to
+ wait_for {}
+
+ [BUGFIXES]
+ * Use 'SOCK_STREAM' instead of hardcoded 1 in t/50resolver.t
+ * Skip exceptional socket condition test on cygwin because it seems
+ always to fail there
+ * Avoid harmless warnings about undef at global destruction
+ (RT142754)
+
0.801 2021-12-15
[BUGFIXES]
* Remove extraneous test-time use of Data::Dump (RT140143)
diff --git a/LICENSE b/LICENSE
index f15476d..7f7fca7 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-This software is copyright (c) 2021 by Paul Evans <leonerd@leonerd.org.uk>.
+This software is copyright (c) 2022 by Paul Evans <leonerd@leonerd.org.uk>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2021 by Paul Evans <leonerd@leonerd.org.uk>.
+This software is Copyright (c) 2022 by Paul Evans <leonerd@leonerd.org.uk>.
This is free software, licensed under:
@@ -272,7 +272,7 @@ That's all there is to it!
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2021 by Paul Evans <leonerd@leonerd.org.uk>.
+This software is Copyright (c) 2022 by Paul Evans <leonerd@leonerd.org.uk>.
This is free software, licensed under:
@@ -292,21 +292,21 @@ Definitions:
- "Package" refers to the collection of files distributed by the Copyright
Holder, and derivatives of that collection of files created through
- textual modification.
+ textual modification.
- "Standard Version" refers to such a Package if it has not been modified,
or has been modified in accordance with the wishes of the Copyright
- Holder.
+ Holder.
- "Copyright Holder" is whoever is named in the copyright or copyrights for
- the package.
+ the package.
- "You" is you, if you're thinking about copying or distributing this Package.
- "Reasonable copying fee" is whatever you can justify on the basis of media
cost, duplication charges, time of people involved, and so on. (You will
not be required to justify it to the Copyright Holder, but only to the
- computing community at large as a market that must bear the fee.)
+ computing community at large as a market that must bear the fee.)
- "Freely Available" means that no fee is charged for the item itself, though
there may be fees involved in handling the item. It also means that
recipients of the item may redistribute it under the same conditions they
- received it.
+ received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
@@ -373,7 +373,7 @@ products derived from this software without specific prior written permission.
9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
diff --git a/MANIFEST b/MANIFEST
index d169168..fcfe421 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -46,11 +46,7 @@ lib/IO/Async/Timer.pm
lib/IO/Async/Timer/Absolute.pm
lib/IO/Async/Timer/Countdown.pm
lib/IO/Async/Timer/Periodic.pm
-LICENSE
MANIFEST This list of files
-META.json
-META.yml
-README
t/00use.t
t/01timequeue.t
t/02os.t
@@ -118,3 +114,7 @@ t/99pod.t
t/RoutineTester.pm
t/StupidLoop.pm
t/TimeAbout.pm
+README
+LICENSE
+META.yml
+META.json
diff --git a/META.json b/META.json
index f215695..3940e08 100644
--- a/META.json
+++ b/META.json
@@ -55,146 +55,146 @@
},
"IO::Async" : {
"file" : "lib/IO/Async.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Channel" : {
"file" : "lib/IO/Async/Channel.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Debug" : {
"file" : "lib/IO/Async/Debug.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::File" : {
"file" : "lib/IO/Async/File.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::FileStream" : {
"file" : "lib/IO/Async/FileStream.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Function" : {
"file" : "lib/IO/Async/Function.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Future" : {
"file" : "lib/IO/Async/Future.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Handle" : {
"file" : "lib/IO/Async/Handle.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Internals::ChildManager" : {
"file" : "lib/IO/Async/Internals/ChildManager.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Internals::FunctionWorker" : {
"file" : "lib/IO/Async/Internals/FunctionWorker.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Listener" : {
"file" : "lib/IO/Async/Listener.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Loop" : {
"file" : "lib/IO/Async/Loop.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Loop::Poll" : {
"file" : "lib/IO/Async/Loop/Poll.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Loop::Select" : {
"file" : "lib/IO/Async/Loop/Select.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::LoopTests" : {
"file" : "lib/IO/Async/LoopTests.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Metrics" : {
"file" : "lib/IO/Async/Metrics.pm"
},
"IO::Async::Notifier" : {
"file" : "lib/IO/Async/Notifier.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::OS" : {
"file" : "lib/IO/Async/OS.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::OS::MSWin32" : {
"file" : "lib/IO/Async/OS/MSWin32.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::OS::cygwin" : {
"file" : "lib/IO/Async/OS/cygwin.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::OS::linux" : {
"file" : "lib/IO/Async/OS/linux.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::PID" : {
"file" : "lib/IO/Async/PID.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Process" : {
"file" : "lib/IO/Async/Process.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Protocol" : {
"file" : "lib/IO/Async/Protocol.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Protocol::LineStream" : {
"file" : "lib/IO/Async/Protocol/LineStream.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Protocol::Stream" : {
"file" : "lib/IO/Async/Protocol/Stream.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Resolver" : {
"file" : "lib/IO/Async/Resolver.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Routine" : {
"file" : "lib/IO/Async/Routine.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Signal" : {
"file" : "lib/IO/Async/Signal.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Socket" : {
"file" : "lib/IO/Async/Socket.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Stream" : {
"file" : "lib/IO/Async/Stream.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Test" : {
"file" : "lib/IO/Async/Test.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Timer" : {
"file" : "lib/IO/Async/Timer.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Timer::Absolute" : {
"file" : "lib/IO/Async/Timer/Absolute.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Timer::Countdown" : {
"file" : "lib/IO/Async/Timer/Countdown.pm",
- "version" : "0.801"
+ "version" : "0.802"
},
"IO::Async::Timer::Periodic" : {
"file" : "lib/IO/Async/Timer/Periodic.pm",
- "version" : "0.801"
+ "version" : "0.802"
}
},
"release_status" : "stable",
@@ -204,6 +204,6 @@
],
"x_IRC" : "irc://irc.perl.org/#io-async"
},
- "version" : "0.801",
- "x_serialization_backend" : "JSON::PP version 4.05"
+ "version" : "0.802",
+ "x_serialization_backend" : "JSON::PP version 4.06"
}
diff --git a/META.yml b/META.yml
index a707d15..25182b0 100644
--- a/META.yml
+++ b/META.yml
@@ -24,111 +24,111 @@ provides:
file: lib/Future/IO/Impl/IOAsync.pm
IO::Async:
file: lib/IO/Async.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Channel:
file: lib/IO/Async/Channel.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Debug:
file: lib/IO/Async/Debug.pm
- version: '0.801'
+ version: '0.802'
IO::Async::File:
file: lib/IO/Async/File.pm
- version: '0.801'
+ version: '0.802'
IO::Async::FileStream:
file: lib/IO/Async/FileStream.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Function:
file: lib/IO/Async/Function.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Future:
file: lib/IO/Async/Future.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Handle:
file: lib/IO/Async/Handle.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Internals::ChildManager:
file: lib/IO/Async/Internals/ChildManager.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Internals::FunctionWorker:
file: lib/IO/Async/Internals/FunctionWorker.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Listener:
file: lib/IO/Async/Listener.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Loop:
file: lib/IO/Async/Loop.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Loop::Poll:
file: lib/IO/Async/Loop/Poll.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Loop::Select:
file: lib/IO/Async/Loop/Select.pm
- version: '0.801'
+ version: '0.802'
IO::Async::LoopTests:
file: lib/IO/Async/LoopTests.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Metrics:
file: lib/IO/Async/Metrics.pm
IO::Async::Notifier:
file: lib/IO/Async/Notifier.pm
- version: '0.801'
+ version: '0.802'
IO::Async::OS:
file: lib/IO/Async/OS.pm
- version: '0.801'
+ version: '0.802'
IO::Async::OS::MSWin32:
file: lib/IO/Async/OS/MSWin32.pm
- version: '0.801'
+ version: '0.802'
IO::Async::OS::cygwin:
file: lib/IO/Async/OS/cygwin.pm
- version: '0.801'
+ version: '0.802'
IO::Async::OS::linux:
file: lib/IO/Async/OS/linux.pm
- version: '0.801'
+ version: '0.802'
IO::Async::PID:
file: lib/IO/Async/PID.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Process:
file: lib/IO/Async/Process.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Protocol:
file: lib/IO/Async/Protocol.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Protocol::LineStream:
file: lib/IO/Async/Protocol/LineStream.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Protocol::Stream:
file: lib/IO/Async/Protocol/Stream.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Resolver:
file: lib/IO/Async/Resolver.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Routine:
file: lib/IO/Async/Routine.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Signal:
file: lib/IO/Async/Signal.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Socket:
file: lib/IO/Async/Socket.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Stream:
file: lib/IO/Async/Stream.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Test:
file: lib/IO/Async/Test.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Timer:
file: lib/IO/Async/Timer.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Timer::Absolute:
file: lib/IO/Async/Timer/Absolute.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Timer::Countdown:
file: lib/IO/Async/Timer/Countdown.pm
- version: '0.801'
+ version: '0.802'
IO::Async::Timer::Periodic:
file: lib/IO/Async/Timer/Periodic.pm
- version: '0.801'
+ version: '0.802'
recommends:
IO::Socket::IP: '0'
requires:
@@ -146,5 +146,5 @@ requires:
resources:
IRC: irc://irc.perl.org/#io-async
license: http://dev.perl.org/licenses/
-version: '0.801'
+version: '0.802'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff --git a/lib/IO/Async.pm b/lib/IO/Async.pm
index 6e0a353..1f27413 100644
--- a/lib/IO/Async.pm
+++ b/lib/IO/Async.pm
@@ -12,7 +12,7 @@ use warnings;
# It is provided simply to keep CPAN happy:
# cpan -i IO::Async
-our $VERSION = '0.801';
+our $VERSION = '0.802';
=head1 NAME
diff --git a/lib/IO/Async/Channel.pm b/lib/IO/Async/Channel.pm
index 864e891..63f08df 100644
--- a/lib/IO/Async/Channel.pm
+++ b/lib/IO/Async/Channel.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Notifier );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Debug.pm b/lib/IO/Async/Debug.pm
index 147ff61..e336fde 100644
--- a/lib/IO/Async/Debug.pm
+++ b/lib/IO/Async/Debug.pm
@@ -8,7 +8,7 @@ package IO::Async::Debug;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
our $DEBUG = $ENV{IO_ASYNC_DEBUG} || 0;
our $DEBUG_FD = $ENV{IO_ASYNC_DEBUG_FD};
diff --git a/lib/IO/Async/File.pm b/lib/IO/Async/File.pm
index 2f1b9ca..b51fb6c 100644
--- a/lib/IO/Async/File.pm
+++ b/lib/IO/Async/File.pm
@@ -8,7 +8,7 @@ package IO::Async::File;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Timer::Periodic );
diff --git a/lib/IO/Async/FileStream.pm b/lib/IO/Async/FileStream.pm
index b30b620..8c3fea6 100644
--- a/lib/IO/Async/FileStream.pm
+++ b/lib/IO/Async/FileStream.pm
@@ -8,7 +8,7 @@ package IO::Async::FileStream;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Stream );
diff --git a/lib/IO/Async/Function.pm b/lib/IO/Async/Function.pm
index c28ff04..0baefe6 100644
--- a/lib/IO/Async/Function.pm
+++ b/lib/IO/Async/Function.pm
@@ -8,7 +8,7 @@ package IO::Async::Function;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Notifier );
use IO::Async::Timer::Countdown;
diff --git a/lib/IO/Async/Future.pm b/lib/IO/Async/Future.pm
index d9752c3..1754614 100644
--- a/lib/IO/Async/Future.pm
+++ b/lib/IO/Async/Future.pm
@@ -1,18 +1,22 @@
# You may distribute under the terms of either the GNU General Public License
# or the Artistic License (the same terms as Perl itself)
#
-# (C) Paul Evans, 2013 -- leonerd@leonerd.org.uk
+# (C) Paul Evans, 2013-2022 -- leonerd@leonerd.org.uk
package IO::Async::Future;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( Future );
Future->VERSION( '0.05' ); # to respect subclassing
+# Newer versions of Future have a proper subclassing-data API; for older
+# versions we just treat it as a hashref
+use constant FUTURE_HAS_UDATA => defined Future->can( "udata" );
+
use Carp;
=head1 NAME
@@ -67,11 +71,19 @@ sub new
my $proto = shift;
my $self = $proto->SUPER::new;
+ my $loop;
if( ref $proto ) {
- $self->{loop} = $proto->{loop};
+ $loop = $proto->loop;
+ }
+ else {
+ $loop = shift;
+ }
+
+ if( FUTURE_HAS_UDATA ) {
+ $self->set_udata( loop => $loop );
}
else {
- $self->{loop} = shift;
+ $self->{loop} = $loop;
}
return $self;
@@ -92,13 +104,13 @@ Returns the underlying L<IO::Async::Loop> object.
sub loop
{
my $self = shift;
- return $self->{loop};
+ return FUTURE_HAS_UDATA ? $self->udata( "loop" ) : $self->{loop};
}
sub await
{
my $self = shift;
- $self->{loop}->await( $self );
+ $self->loop->await( $self );
}
=head2 done_later
diff --git a/lib/IO/Async/Handle.pm b/lib/IO/Async/Handle.pm
index 81d9a36..68997e1 100644
--- a/lib/IO/Async/Handle.pm
+++ b/lib/IO/Async/Handle.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Notifier );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Internals/ChildManager.pm b/lib/IO/Async/Internals/ChildManager.pm
index 5f5fd62..5ace011 100644
--- a/lib/IO/Async/Internals/ChildManager.pm
+++ b/lib/IO/Async/Internals/ChildManager.pm
@@ -8,7 +8,7 @@ package IO::Async::Internals::ChildManager;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
# Not a notifier
diff --git a/lib/IO/Async/Internals/Connector.pm b/lib/IO/Async/Internals/Connector.pm
index 8ff2186..6756afa 100644
--- a/lib/IO/Async/Internals/Connector.pm
+++ b/lib/IO/Async/Internals/Connector.pm
@@ -9,7 +9,7 @@ package # hide from CPAN
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Scalar::Util qw( weaken blessed );
diff --git a/lib/IO/Async/Internals/FunctionWorker.pm b/lib/IO/Async/Internals/FunctionWorker.pm
index b2b808c..d7de859 100644
--- a/lib/IO/Async/Internals/FunctionWorker.pm
+++ b/lib/IO/Async/Internals/FunctionWorker.pm
@@ -8,7 +8,7 @@ package IO::Async::Internals::FunctionWorker;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
# Called directly by IO::Async::Function::Worker when used in "code" mode,
# or by run_worker() below.
diff --git a/lib/IO/Async/Listener.pm b/lib/IO/Async/Listener.pm
index dfeb0ee..b8a7359 100644
--- a/lib/IO/Async/Listener.pm
+++ b/lib/IO/Async/Listener.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Handle );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use IO::Async::Handle;
use IO::Async::OS;
diff --git a/lib/IO/Async/Loop.pm b/lib/IO/Async/Loop.pm
index 95b18b4..adf3ce2 100644
--- a/lib/IO/Async/Loop.pm
+++ b/lib/IO/Async/Loop.pm
@@ -8,7 +8,7 @@ package IO::Async::Loop;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
# When editing this value don't forget to update the docs below
use constant NEED_API_VERSION => '0.33';
diff --git a/lib/IO/Async/Loop/Poll.pm b/lib/IO/Async/Loop/Poll.pm
index e7cf107..1958e24 100644
--- a/lib/IO/Async/Loop/Poll.pm
+++ b/lib/IO/Async/Loop/Poll.pm
@@ -8,7 +8,7 @@ package IO::Async::Loop::Poll;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use constant API_VERSION => '0.49';
use base qw( IO::Async::Loop );
diff --git a/lib/IO/Async/Loop/Select.pm b/lib/IO/Async/Loop/Select.pm
index 012bb70..7bd0fe3 100644
--- a/lib/IO/Async/Loop/Select.pm
+++ b/lib/IO/Async/Loop/Select.pm
@@ -8,7 +8,7 @@ package IO::Async::Loop::Select;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use constant API_VERSION => '0.49';
use base qw( IO::Async::Loop );
diff --git a/lib/IO/Async/LoopTests.pm b/lib/IO/Async/LoopTests.pm
index 1b4400d..555f06b 100644
--- a/lib/IO/Async/LoopTests.pm
+++ b/lib/IO/Async/LoopTests.pm
@@ -28,7 +28,7 @@ use POSIX qw( SIGTERM );
use Socket qw( sockaddr_family AF_UNIX );
use Time::HiRes qw( time );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
# Abstract Units of Time
use constant AUT => $ENV{TEST_QUICK_TIMERS} ? 0.1 : 1;
@@ -369,7 +369,9 @@ sub run_tests_io
# Check that error conditions that aren't true read/write-ability are still
# invoked
- {
+ SKIP: {
+ skip "cygwin does not indicate read-ready on exceptional sockets", 1 if $^O eq "cygwin";
+
my ( $S1, $S2 ) = IO::Async::OS->socketpair( 'inet', 'dgram' ) or die "Cannot create AF_INET/SOCK_DGRAM connected pair - $!";
$_->blocking( 0 ) for $S1, $S2;
$S2->close;
diff --git a/lib/IO/Async/Notifier.pm b/lib/IO/Async/Notifier.pm
index 33e69f5..6cd8fb2 100644
--- a/lib/IO/Async/Notifier.pm
+++ b/lib/IO/Async/Notifier.pm
@@ -8,7 +8,7 @@ package IO::Async::Notifier;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
use Scalar::Util qw( weaken );
@@ -466,6 +466,7 @@ sub remove_child
LOOP: {
my $childrenref = $self->{IO_Async_Notifier__children};
for my $i ( 0 .. $#$childrenref ) {
+ no warnings 'uninitialized';
next unless $childrenref->[$i] == $child;
splice @$childrenref, $i, 1, ();
last LOOP;
diff --git a/lib/IO/Async/OS.pm b/lib/IO/Async/OS.pm
index 6894640..f6c2394 100644
--- a/lib/IO/Async/OS.pm
+++ b/lib/IO/Async/OS.pm
@@ -8,7 +8,7 @@ package IO::Async::OS;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
our @ISA = qw( IO::Async::OS::_Base );
diff --git a/lib/IO/Async/OS/MSWin32.pm b/lib/IO/Async/OS/MSWin32.pm
index 6d5279e..d36c611 100644
--- a/lib/IO/Async/OS/MSWin32.pm
+++ b/lib/IO/Async/OS/MSWin32.pm
@@ -8,7 +8,7 @@ package IO::Async::OS::MSWin32;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
our @ISA = qw( IO::Async::OS::_Base );
diff --git a/lib/IO/Async/OS/cygwin.pm b/lib/IO/Async/OS/cygwin.pm
index 8d01c74..f9f4f52 100644
--- a/lib/IO/Async/OS/cygwin.pm
+++ b/lib/IO/Async/OS/cygwin.pm
@@ -8,7 +8,7 @@ package IO::Async::OS::cygwin;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
our @ISA = qw( IO::Async::OS::_Base );
diff --git a/lib/IO/Async/OS/linux.pm b/lib/IO/Async/OS/linux.pm
index 88979e0..44c849a 100644
--- a/lib/IO/Async/OS/linux.pm
+++ b/lib/IO/Async/OS/linux.pm
@@ -8,7 +8,7 @@ package IO::Async::OS::linux;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
our @ISA = qw( IO::Async::OS::_Base );
diff --git a/lib/IO/Async/PID.pm b/lib/IO/Async/PID.pm
index af5f2c3..84b1967 100644
--- a/lib/IO/Async/PID.pm
+++ b/lib/IO/Async/PID.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Notifier );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Process.pm b/lib/IO/Async/Process.pm
index fad4740..ec71052 100644
--- a/lib/IO/Async/Process.pm
+++ b/lib/IO/Async/Process.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Notifier );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Protocol.pm b/lib/IO/Async/Protocol.pm
index c6f6e9c..61ccba4 100644
--- a/lib/IO/Async/Protocol.pm
+++ b/lib/IO/Async/Protocol.pm
@@ -8,7 +8,7 @@ package IO::Async::Protocol;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Notifier );
diff --git a/lib/IO/Async/Protocol/LineStream.pm b/lib/IO/Async/Protocol/LineStream.pm
index 95b0930..d267db1 100644
--- a/lib/IO/Async/Protocol/LineStream.pm
+++ b/lib/IO/Async/Protocol/LineStream.pm
@@ -8,7 +8,7 @@ package IO::Async::Protocol::LineStream;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Protocol::Stream );
diff --git a/lib/IO/Async/Protocol/Stream.pm b/lib/IO/Async/Protocol/Stream.pm
index c3aac3c..95b96ca 100644
--- a/lib/IO/Async/Protocol/Stream.pm
+++ b/lib/IO/Async/Protocol/Stream.pm
@@ -8,7 +8,7 @@ package IO::Async::Protocol::Stream;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Protocol );
diff --git a/lib/IO/Async/Resolver.pm b/lib/IO/Async/Resolver.pm
index 55cc6f2..fd8d6ba 100644
--- a/lib/IO/Async/Resolver.pm
+++ b/lib/IO/Async/Resolver.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Function );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
# Socket 2.006 fails to getaddrinfo() AI_NUMERICHOST properly on MSWin32
use Socket 2.007 qw(
diff --git a/lib/IO/Async/Routine.pm b/lib/IO/Async/Routine.pm
index ef4085c..0420bc5 100644
--- a/lib/IO/Async/Routine.pm
+++ b/lib/IO/Async/Routine.pm
@@ -8,7 +8,7 @@ package IO::Async::Routine;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Notifier );
diff --git a/lib/IO/Async/Signal.pm b/lib/IO/Async/Signal.pm
index 88f3d81..fc0bb98 100644
--- a/lib/IO/Async/Signal.pm
+++ b/lib/IO/Async/Signal.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Notifier );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Socket.pm b/lib/IO/Async/Socket.pm
index 67114aa..1788e37 100644
--- a/lib/IO/Async/Socket.pm
+++ b/lib/IO/Async/Socket.pm
@@ -8,7 +8,7 @@ package IO::Async::Socket;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Handle );
diff --git a/lib/IO/Async/Stream.pm b/lib/IO/Async/Stream.pm
index 2cd9f78..b923a81 100644
--- a/lib/IO/Async/Stream.pm
+++ b/lib/IO/Async/Stream.pm
@@ -8,7 +8,7 @@ package IO::Async::Stream;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use base qw( IO::Async::Handle );
diff --git a/lib/IO/Async/Test.pm b/lib/IO/Async/Test.pm
index 5a1ebe0..d86d1fb 100644
--- a/lib/IO/Async/Test.pm
+++ b/lib/IO/Async/Test.pm
@@ -8,7 +8,7 @@ package IO::Async::Test;
use strict;
use warnings;
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Exporter 'import';
our @EXPORT = qw(
@@ -124,11 +124,13 @@ Defaults to 10 seconds.
=cut
+our $Level = 0;
+
sub wait_for(&@)
{
my ( $cond, %opts ) = @_;
- my ( undef, $callerfile, $callerline ) = caller;
+ my ( undef, $callerfile, $callerline ) = caller( $Level );
my $timedout = 0;
my $timerid = $loop->watch_time(
@@ -187,6 +189,7 @@ sub wait_for_stream(&$$)
}
);
+ local $Level = $Level + 1;
# Have to defeat the prototype... grr I hate these
&wait_for( $cond );
@@ -211,6 +214,7 @@ sub wait_for_future
{
my ( $future ) = @_;
+ local $Level = $Level + 1;
wait_for { $future->is_ready };
return $future;
diff --git a/lib/IO/Async/Timer.pm b/lib/IO/Async/Timer.pm
index 1159ccd..9330b14 100644
--- a/lib/IO/Async/Timer.pm
+++ b/lib/IO/Async/Timer.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Notifier );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Timer/Absolute.pm b/lib/IO/Async/Timer/Absolute.pm
index 28832cf..ae7962b 100644
--- a/lib/IO/Async/Timer/Absolute.pm
+++ b/lib/IO/Async/Timer/Absolute.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Timer );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Timer/Countdown.pm b/lib/IO/Async/Timer/Countdown.pm
index d83899c..b3c9113 100644
--- a/lib/IO/Async/Timer/Countdown.pm
+++ b/lib/IO/Async/Timer/Countdown.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Timer );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/lib/IO/Async/Timer/Periodic.pm b/lib/IO/Async/Timer/Periodic.pm
index 9427f0c..8349210 100644
--- a/lib/IO/Async/Timer/Periodic.pm
+++ b/lib/IO/Async/Timer/Periodic.pm
@@ -9,7 +9,7 @@ use strict;
use warnings;
use base qw( IO::Async::Timer );
-our $VERSION = '0.801';
+our $VERSION = '0.802';
use Carp;
diff --git a/t/50resolver.t b/t/50resolver.t
index 1e36b37..fb684da 100644
--- a/t/50resolver.t
+++ b/t/50resolver.t
@@ -213,7 +213,7 @@ my @expect_lo_80 = (
{ family => AF_INET, socktype => SOCK_STREAM, protocol => 0, addr => pack_sockaddr_in(80, INADDR_LOOPBACK) },
);
my @expect_passive_3000 = (
- { family => AF_INET, socktype => 1, protocol => 0, addr => pack_sockaddr_in(3000, INADDR_ANY) },
+ { family => AF_INET, socktype => SOCK_STREAM, protocol => 0, addr => pack_sockaddr_in(3000, INADDR_ANY) },
);
{