[poe-commits] poe/tests/30_loops/00_base wheel_run.pm,1.3,1.4
Brought to you by:
rcaputo
From: <rc...@us...> - 2005-04-22 20:32:18
|
Update of /cvsroot/poe/poe/tests/30_loops/00_base In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13531/tests/30_loops/00_base Modified Files: wheel_run.pm Log Message: ActiveState Perl + Tk + POE::Wheel::Run + coderefs = Pain. ActiveState Perl emulates fork() with iThreads. Only Perl's core exit() will properly "exit" a "process". Tk overrides exit() with its own XS magic. This seems to kill off the parent "process". When POE::Wheel::Run is used to run subroutines (coderefs) in child processes, it must somehow exit() the child process, simulating exec. Under Windows, that's Perl's core exit(), which is usurped by Tk, which causes ALL MANNER OF EVIL! DON'T GO THERE! WE SURE AREN'T! Index: wheel_run.pm =================================================================== RCS file: /cvsroot/poe/poe/tests/30_loops/00_base/wheel_run.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** wheel_run.pm 12 Apr 2005 01:43:22 -0000 1.3 --- wheel_run.pm 22 Apr 2005 20:32:10 -0000 1.4 *************** *** 232,236 **** my $coderef_flush_count = 0; ! { my $program = sub { my ($out, $err) = @_; local $/ = q(!); --- 232,242 ---- my $coderef_flush_count = 0; ! if ($^O eq "MSWin32" and exists $INC{"Tk.pm"}) { ! ok(23, "SKIP: Wheel::Run + Tk + ActiveState + CODE program = pain"); ! ok(24, "SKIP: Wheel::Run + Tk + ActiveState + CODE program = pain"); ! $coderef_flush_count = 3; ! } ! else { ! my $program = sub { my ($out, $err) = @_; local $/ = q(!); |