Revision history for IO-Async
0.13 CHANGES:
* Flush all awaiting data from Stream when it becomes writeready
* Supply a real IO::Async::Test module to allow testing in 3rd party
distros
* Various documentation fixes
BUGFIXES:
* Don't rely on STDOUT being writable during test scripts
0.12 CHANGES:
* Allow Notifiers that are write-only.
* Added ChildManager->open and ->run; with ->open_child and
->run_child on the containing Loop.
* Moved IO::Async::Loop::Glib out to its own CPAN dist, to
simplify Build.PL and testing scripts
BUGFIXES:
* Make sure to "use IO::Socket" in IO::Async::Connector
* Pass 'socktype' argument to ->connect during testing
0.11 INCOMPATIBLE CHANGES:
* Renamed IO::Async::Set::* to IO::Async::Loop::* - provided
backward-compatibility wrappers around old names.
IO::Async::Set::GMainLoop has become IO::Async::Lib::Glib
* Renamed IO::Async::Buffer to IO::Async::Stream - provided backward-
compatibility wrapper around old name.
* Loop->get_childmanager() and ->get_sigproxy() no longer allowed
CHANGES:
* Extended ->loop_once() and ->loop() feature out to all
IO::Async::Loop classes
* Added IO::Async::Resolver and IO::Async::Connector, plus Loop
integration
* Allow write-only IO::Async::Notifiers that have no read handle or
readiness callback.
0.10 INCOMPATIBLE CHANGES:
* Renamed events and methods in IO::Async::Notifier to better fit the
naming scheme of normal Perl handles. Backward-compatibility hooks
are currently provided, but will be removed in a later release. Any
code using the old names should be updated
CHANGES:
* Allow DetachedCode to have multiple back-end worker processes.
* Control if a back-end worker exits when the code "die"s
* Added 'close()' method on Notifiers/Buffers. Sensible behaviour on
buffers with queued data to send
* Reset %SIG hash in ChildManager->detach_child()
BUGFIXES:
* Clean up temporary directory during testing
* Shut down DetachedCode workers properly on object deref
* Better handling of borderline timing failures in t/11set-*.t
* Close old handles before dup2()ing new ones when detaching code
* Various other minor test script improvements
0.09 CHANGES:
* Added TimeQueue object and integration with IO::Async::Set and
subclasses.
* Added MergePoint object
* Added 'on_closed' callback support to IO::Async::Notifier
BUGFIXES:
* Don't depend on system locale when checking string value of $!
* Fixed test scripts to more closely approximate real code behaviour
in the presence of poll() vs. deferred signal delivery
0.08 CHANGES:
* Added ChildManager->detach_child() method
* Added DetachedCode object
BUGFIXES:
* Better tests for presence of Glib to improve test false failures
* More lenient times in test script 11set-IO-Poll-timing to allow for
variances at test time
* Avoid bugs in post_select()/post_poll() caused by some notifier
callbacks removing other notifiers from the set
0.07 BUGFIXES:
* Avoid race condition in t/30childmanager.t - wait for child process
to actually exit
* Avoid race condition in IO::Async::ChildManager->spawn() by waiting
for SIGCHLD+pipe close, rather than SIGCHLD+pipe data
0.06 CHANGES:
* Allow 'env' setup key to ChildManager->spawn() to change the
child's %ENV
* Updated the way some of the ->spawn() tests are conducted. There
seems to be massive failures reported on cpantesters against 0.05.
These changes won't fix the bugs, but should assist in reporting
and tracking them down.
BUGFIXES:
* Don't rely on existence of /bin/true - test for /usr/bin/true as
well, fall back on "$^X -e 1"
* Avoid kernel race condition in t/32childmanager-spawn-setup.t by
proper use of select() when testing.
0.05 CHANGES:
* Added ChildManager object
* Added singleton storage in IO::Async::Set to store a SignalProxy or
ChildManager conveniently
BUGFIXES:
* Workaround for a bug in IO::Poll version 0.05
0.04 CHANGES:
* Added dynamic signal attach / detach methods to SignalProxy
* Buffer now has on_read_error / on_write_error callbacks for
handling IO errors on underlying sysread()/syswrite() calls
0.03 CHANGES:
* No longer build_requires 'Glib' - print a warning if it's not
installed but carry on anyway.
* IO_Poll->loop_once() now returns the result from the poll() call
* Added concept of nested child notifiers within Notifier object
BUGFIXES:
* Fix to test scripts that call IO_Poll's loop_once() with a timeout
of zero. This can cause a kernel race condition, so supply some
small non-zero value instead.
0.02 INCOMPATIBLE CHANGES:
* Event methods/callback functions now called "on_*" to distinguish
them
* Callback functions now pass $self as first argument to simplify
called code
CHANGES:
* Improved POD in Notifier.pm and Buffer.pm
BUGFIXES:
* GMainLoop.pm - return 1 from callbacks so that glib doesn't remove
our IO sources
* GMainLoop.pm - make sure re-asserting want_writeready actually adds
the IO source again
0.01 First version, released on an unsuspecting world.