Good morning!

POE 0.1701 can be found at <http://poe.perl.org/?Where_to_get_POE>.
In the unlikely event that poe.perl.org is down (thanks Matt!), it's
also available at <http://sf.net/projects/poe/>.

As usual, I've included the latest changes here.  A better version is
online at <http://poe.perl.org/?POE_CHANGES>.

POE's test results are at <http://poe.perl.org/?POE's_test_results>.
Test coverage results are at
<http://poe.perl.org/?POE's_test_coverage_report>.

-- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sourceforge.net

-----------------------
0.1701 2001.10.22 (!!!)
-----------------------

I'm tempted to nickname this release "Enterprise", but I'm not gonna.

Rocco applied Tony Cook's documentation patch.

Sungo applied his Preprocessor.pm patch that lets packages inherit
macros and constants from other packages.  It's another step towards
making Session inheritable.

Rocco applied Sky's patch to prevent Filter::HTTPD from mangling
newlines in responses' content.  Sky's patch also documents how to
stream large files.

Rocco applied a patch to Component::Server::TCP so it doesn't generate
missing-state warnings.

Rocco applied an experimental patch to Kernel's SIGCHLD code.  It
slowly polls for child processes to reap (once a second) until some
CHLD signal arrives.  After that, it polls rapidly until no more are
available.  Then it goes back into once per second mode.

Ingy noticed that the deprecation warnings for using coderefs as event
names in SocketFactory were really confusing.  These have been
changed, hopefully for the better.

(!!!) Recombined the event and alarm queues.  This is a big internal
change to POE::Kernel and POE::Kernel::*, but it doesn't affect public
interfaces.  It's marked as potential breakage for people who are
working in POE's guts.

(!!!) Clean up POE::Kernel and POE::Kernel::* names.  Replace "state
transition event" with "event".  Replace "state" with "event" when it
refers to events.  Replace "state" with "event handler" when it refers
to code invoked to handle events.  Fix up the documentation a little,
too.  This could potentially break programs that rely on undocumented
POE::Kernel internals.

Received reports that Linux's select() will block indefinitely if it's
somehow interrupted with a signal when called with a 0s timeout.  It's
been implicated with the sudden lockup of long-running processes.
Worked around it by setting the minimum select() timeout to 1
microsecond on Linux.

Add defined tests to Wheel::Run so that it doesn't generate errors on
Ctrl-C.

Add code to POE::Wheel::FollowTail so it can emit a ResetEvent when
files it watch have been reset.

Fixed a bug in _alarm_find per Kirill's recommendation.  It would die
with "internal inconsistency: alarm should have been found" on long
alarm queues.

Fixed a bug that Kirill spotted in POE::Kernel::Select's macro
substrate_ignore_filehandle.  It assumed /$/ was really the end of a
string, but /$/ can match before a newline.  As a result, select(2)
vectors were getting mangled, causing mysterious "select error: Bad
file descriptor" or "select error: Unknown error" messages.

(!!!) Posted events now keep sessions alive.  This simplifies
inter-session communication greatly, eliminating the need to call()
between sessions.  Chances are that this won't break many (any?)
programs, but it's flagged as such to catch your attention.

Debug FollowTail code per freeside's test case.

Fixed a leak in Kernel/Tk.pm.  Circular references on filehandles (in
Tk?) were preventing them from closing.  Stringifying a handle in a
strategic place (it was being used as a hash key anyway) broke the
reference loop and let handles close properly.

Dieter Pearcey told me to remove an apostrophe from a comment, so I
did.

-End-

Reply via email to