Revision history for IO-Async 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::Buffer 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.