http://www.perlmonks.org?node_id=1018194


in reply to Re: Force 2 'ctrl-c's to kill program
in thread Force 2 'ctrl-c's to kill program

Cheers. I tried someting like that but again it appears that while I am inside my 1st control_c_observed subroutine, the 2nd Ctrl-C only gets serviced after the routine has finished. That is, it does not appear to allow the 2nd ctrl-c affect the sub-routine called by the 1st Ctrl-C. Now, it could be that I implemented it incorrectly!
  • Comment on Re^2: Force 2 'ctrl-c's to kill program

Replies are listed 'Best First'.
Re^3: Force 2 'ctrl-c's to kill program
by jethro (Monsignor) on Feb 11, 2013 at 18:13 UTC

    So you didn't eliminate the sleep() call? Think about it, why would you still need the sleep call when you know the time the first ctrl-c happened. Without the sleep call the ctrl-c subroutine should be finished almost immediately.

    PS: Using something like sleep() in an interrupt routine is bad design. Interrupt routines should never have a long running time because the code they are interrupting might have expectations of things occuring at a certain speed without seconds-long freezing. For example the user interface

      I understand what you were originally proposing now (along the lines of BrowserUK's code below I assume). Thanks for the advice on sleep. I definitely should take more core in using it.