IO-Async
view release on metacpan or search on metacpan
* More reliable socket address tests - don't rely on uninitialised
padding bytes between struct members
0.26 BUGFIXES:
* Connect to INADDR_LOOPBACK rather than INADDR_ANY during
t/24listener.t; hopefully fixes FAILs on OpenBSD
* Fix IO::Async::Stream during combined read/write-ready of a closed
stream
0.25 CHANGES:
* Accept 'stream'/'dgram'/'raw' as symbolic shortcuts for socket
types in connect/listen operations - avoids 'use Socket'
* Accept IO::Handle-derived objects in ChildManager setup keys as
well as raw GLOB refs
BUGFIXES:
* Various changes to test scripts to hopefully improve portability or
reliability during smoke tests
0.24 ADDITIONS:
* Timer subclasses - Countdown and Periodic
* Idleness event watching via low-level 'watch_io/unwatch_io' methods
and higher-level 'later' method
* Added the missing 'unwatch_child' method
* Shareable acceptance testing suite for IO::Async::Loop subclasses
for better testing in subclass implementations
CHANGES:
* More future-proof API version checking for subclasses - requires
subclasses to declare their version.
### pre-0.24 Loop subclasses are no longer compatible. ###
* Entirely remove the need to $loop->enable_childmanager by calling
waitpid() in 'watch_child'.
0.23 CHANGES:
* Rearranged IO::Async::Listener to be a constructable Notifier
suclass
* Allow Signal, Timer and Listener to act as base classes as well as
standalone with callbacks
* Renamed IO::Async::Loop::IO_Poll to ::Poll; created transparent
backward-compatibility wrapper
0.22 CHANGES:
* Added tcp-proxy.pl example
* More documentation on IO::Async::Notifier subclass-override methods
* Documented that IO::Async::MergePoint is just an Async::MergePoint
* Various small updates to keep CPANTS happy
BUGFIXES:
* Don't test Async::MergePoint locally as it's now a separate dist,
and the tests here were reporting false negatives.
0.21 CHANGES:
* Added "use warnings" to all modules
* Created Notifier->configure method to allow changing properties of
a Notifier or subclass after construction
* New 'examples' dir with some small example scripts
BUGFIXES:
* More robust timing tests to avoid some spurious test failures due
to busy testing servers or other non-issues
0.20 CHANGES:
* Major reworking of underlying Loop implementation:
+ Unified low-level IO, timer and signal watches as callbacks
+ Split IO handle parts of Notifier into new IO::Async::Handle
class
+ Created Timer and Signal subclasses of Notifier
These changes will require a compatible upgrade to the underlying
Loop implementation.
* Hide SignalProxy and TimeQueue from CPAN's indexer, as they are
internal-only details that don't need exposing there.
* Loop magic constructor now warns if a specifically-requested class
is not available
* Allow multiple attachment of signals via Loop->attach_signal or new
Signal objects
0.19 CHANGES:
* Allow control of Sequencer's pipelining
* Documentation fixes
* Allow Loop->run_child to take a 'setup' array
* Added 'setuid', 'setgid' and 'setgroups' child setup operations
* Support 'on_notifier' in Loop->listen
BUGFIXES:
* carp before return in Stream->write so it actually prints
* Ensure Streams still work after being closed and reopened by
->set_handle
* If IO::Socket->new() fails, try again with generic ->socket
(makes IPv6 work on platforms without IO::Socket::INET6)
0.18 CHANGES:
* Allow Sequencer to be a base class as well as using constructor
callbacks
* Use signal names from Config.pm rather than relying on POSIX.pm.
Covers more signals that way
BUGFIXES:
* Gracefully handle accept() returning EAGAIN
* Fixed handling of IO::Socket->getsockopt( SOL_SOCKET, SO_ERROR )
0.17 CHANGES:
* Added Stream->close_when_empty and ->close_now. Added docs
* Added OS abstractions of socketpair() and pipe()
* Many documentation changes and updates
BUGFIXES:
* Properly handle stream read/write errors; close immediately rather
than deferring until empty.
* Various CPAN testers somketest bug fixes
* Fixed http://rt.cpan.org/Ticket/Display.html?id=38476
0.16 ADDITIONS:
* Loop->requeue_timer()
* Magic constructor in IO::Async::Loop which tries to find the best
subclass
* 'chdir' and 'nice' ChildManager operations
CHANGES:
( run in 0.577 second using v1.01-cache-2.11-cpan-39bf76dae61 )