POE::Component::Server::TCP. New connection sockets were passed into callbacks as closures, preventing them from being closed timely on shutdown unless a session also exited. This commit fixes the problem by passing new connections through POE::Session's args parameter rather than tying them up in closures.
void context. Previously handlers would be called in scalar context, causing a subtle edge case where objects wouldn't destruct properly.
return their handlers' return values to the caller. This is directly contraindicated by the comments. Furthermore, and perhaps best, he submitted a small patch to fix it and a proper regression test. His report was 100% perfect in all regards (even if his patch was a little overzealous). Be like him.
This improves the non-blocking connect code by not turning non-blocking on for ALL sockets created in a process. NBIO is only turned on for the ones created by the socket factory.
Increase the timeout to avoid false failures.
"reasonable" time factor for the alarm tests in the face of such time dilation.
non-blocking pipes, so I moved a test over to internet domain sockets. 2. close() on non-blocking sockets writes, so I changed a test to use shutdown() instead. 3. Files appear to be opened for exclusive access by default, so the Wheel::FollowTail tests can't run. This closes rt.cpan.org tickets 11553 and 11053.
than once. Will be testing on OSX and ActiveState Perl before this is through.
signal handling (rt.cpan.org ticket 12953). This turned out to be caused by calling sig() outside a running session. This change checks that methods requiring to be called from running sessions actually are, but it only does so when ASSERT_USAGE is enabled.
the other POE::Filter subclasses to use it. POE::Filter::HTTPD is an exception because it doesnt' have a get_one() function. POE::Filter::Stackable's get_one() was rewritten to accommodate the change.
way newer Test::More. This finally resolves rt.cpan.org ticket 7558.
in case it's a partial read and we switch the filter to something else. In the past, the reference's header would be lost.
they don't use anything in POE::Filter. This allows people to use isa() to determine whether things are POE::Filter classes. Closes rt.cpan.org ticket #13146. Cleaned up the syntax somewhat in a few of the files. I removed a huge chunk of redundant code in POE::Filter::Reference by rewriting get() in terms of get_one_start() and get_one(). All tests pass.
dispatch to ET_SIGNAL_RECURSIVE since that's what it is now. This cleans up some vestiges from the signal deprecations.
clobber signal parameters.
use copies of @$etc rather than the original in nested _dispatch_event calls. Any future recursive _dispatch_event calls will probably need to do the same.
parameters. Modify Jonathan Steinert's @$etc clearing to preserve $_[ARG0] for signal events. Recursive dispatch code really needs that. I suspect that SIGCHLD dispatch is still broken, as many of the parameters passed down to it will be wiped out before the event is dispatched everywhere.
pass-through arguments parameter.
something in SIGIDLE/SIGZOMBIE dispatch (k_aliases.t), and I want to be sure I fix that without regressing the issue he fixed.
passed in this way will be passed back with the I/O events they generate.
… but before we return control back to the Kernel (queued events) or the calling Session (called events).
entries were crashing ActivePerl + Tk.
skip all tests when using Event, as it seems that Event + thread-simulated fork() + re-entering the event loop = Breakage.