Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

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

by jethro (Monsignor)
on Feb 11, 2013 at 17:18 UTC ( #1018192=note: print w/ replies, xml ) Need Help??


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

Haven't tested this, but why not use time() to record the time of the first ctrl-c and break only if the next ctrl-c has time()-$previoustime<=2


Comment on Re: Force 2 'ctrl-c's to kill program
Re^2: Force 2 'ctrl-c's to kill program
by albob (Acolyte) on Feb 11, 2013 at 17:23 UTC
    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!

      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1018192]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (13)
As of 2015-07-02 16:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (44 votes), past polls