END block ignored while run_cmd() is executing
fulko.hew at gmail.com
Tue Apr 10 17:41:11 CEST 2012
On Tue, Apr 10, 2012 at 8:41 AM, Darin McBride <darin.mcbride at shaw.ca>wrote:
> On Tuesday April 10 2012 7:41:04 AM Marc Lehmann wrote:
> > On Mon, Apr 09, 2012 at 11:14:07AM -0400, Fulko Hew <fulko.hew at gmail.com
> > > it seems that while run_cmd() is executing... if I
> > > (for example) send it a INT signal, the INT signal is
> > > caught, but the END block doesn't get executed. If I
> > > wait for the run_cmd() to finish and then press CTL C,
> > > the END block _is_ executed.
> > I tried your example with the pure-perl loop, EV, Event, POE and Glib,
> > with and without Async::Interrupt, and whether I wait 5 seconds or not, I
> > always get:
> > catcher called with 'INT'
> > INSIDE END BLOCK
> > My guess is that your problem is elsewhere (tty settings, shell, terminal
> > emulator...), or maybe your test program works on your system, too?
> As long as I wait until the "END not accessible" line to show up before I
> Ctrl-C, I never get the INSIDE END BLOCK output here. I'm most likely
> EV (since it's installed), but don't have Async::Interrupt installed.
> $ ~/perl/blead/bin/perl rc.pl
> END not accessible during run_cmd()... wait 5 seconds till it's done
> catcher called with 'INT'
Thank you for confirming the reproducibility of the symptom.
FYI: I have tried it both with and without Async::Interrupt, and each
scenario still failed.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the anyevent