--------------
0.66 2015/04/17 20:36:39
[CHANGES]
* Created IO::Async::Debug
* Ignore SIGPIPE by default (RT92024)
* IaSocket->bind now returns a Future
* Added IaSocket->bind resolver support and neatened up UDP examples
in synopsis/documentation
[BUGFIXES]
* Correct call to unpack() in IaStream example (RT103143)
* Don't silently eat accept() failures in IaListener (RT102677)
* Remember to add the new resolver instance to $loop in
->set_resolver (RT103446)
* Correct implementation of ->unwatch_io on IaLoop::Poll to prevent
100% CPU spin (RT103445)
* Ensure that an exception thrown by Timer::Periodic's on_tick
doesn't prevent rescheduling
--------------
0.65 2015/02/15 14:28:02
[CHANGES]
* Optionally allow IO::Async::Channel to use 'Sereal' serialisation
* Added documentation about the 'env' Child Manager key and copying
%ENV
* Take OS "preferred loop subclass" hints from IO::Async::OS directly
[BUGFIXES]
* Nested $stream->read_* inside read_* cause double-completion of
Future (RT101774)
* Implement IO::Async::Loop::Poll directly on _poll() syscall
wrapper, thus avoiding many bugs in IO::Poll (RT93141)
* Ensure that IO::Async::Loop::Select can cope with callbacks that
remove other IO handle watches (RT101919)
* Silently upgrade watched IO handles to O_NONBLOCK (RT102044)
* Complain about unrecognised keys to ->extract_addrinfo (RT101453)
--------------------
0.64 2014/10/17 17:51:07
[CHANGES]
* Make specific mention of 'TCP' and 'UDP' around socket examples
where appropriate
* Allow construction of an IO::Async::Handle using fileno integers
directly
* Provide a better search for 'all open filehandles' via IO::Async::OS
on Linux (RT97942)
* Allow IO::Async::Listener to have handle_constructor or handle_class
as a subclass method (RT97208)
* Clarify documentation on how to use IO::Async::Process's
on_exception event (RT98929)
[BUGFIXES]
* Ensure that Stream's write Futures are also informed of write errors
(RT97433)
* Remember to ->remove_child the individual workers of an
IO::Async::Function (RT99552)
* Fix IO::Async::Function synopsis example (RT97713)
0.63 2014/07/11 15:09:08
[CHANGES]
* Allow Notifier subclasses to last-ditch handle unrecognised
->configure() params
* Added $notifier->adopt_future
* Added $notifier->invoke_error and 'on_error' event
* Ensure that TimeQueue inserts in FIFO order for equal timestamps
* Kill remaining docs to long-dead IO::Async::Sequencer
[BUGFIXES]
* Cygwin needs the SELECT_CONNECT_EVEC OS hint as well
* Probe for a broken port to perform listen() tests on by using
ReuseAddr => 1 so it matches what IO::Async will do (RT84051)
0.62 2014/03/27 23:15:25
[CHANGES]
* Added IO::Async::Future->{done,fail}_later
* Allow overriding of debug log file or file descriptor
* Avoid Future's and_then/or_else methods
* Allow Channel->recv in async mode to return a Future (RT91180)
* Ensure that Function ->call Futures cancel correctly
* Added $routine->kill
* Kill the 'getaddrinfo' => 'getaddrinfo_array' legacy redirection
* Allow Loop's resolver to be changed to a different object
[BUGFIXES]
* Avoid relying on strong forward references in Future, by creating
intentional cycles on pending Futures. Workaround for bugfix in
upcoming Future release.
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
IO-Async version 0.61 into devel/p5-IO-Async
This collection of modules allows programs to be written that perform
asynchronous filehandle IO operations. A typical program using them would
consist of a single subclass of IO::Async::Loop to act as a container of
other objects, which perform the actual IO work required by the program. As
well as IO handles, the loop also supports timers and signal handlers, and
includes more higher-level functionality built on top of these basic parts.