in reply to ctrl + c on Win32 (signal handling)

#this is what I can do best so far... #sleep 3 for (0 .. 10);

Given the limited function of the sample code, that is the best solution. Though I'd go for:

1 while sleep 1;

Waking up once a second will improve your response time and cause negligible extra cpu usage.

But I suspect that in your real code you are wanting to do more in the while than just sleep?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^2: ctrl + c on Win32 (signal handling)
by remiah (Hermit) on Aug 26, 2011 at 14:35 UTC
    Waking up once a second will improve your response time and cause negligible extra cpu usage.
    I see... I can get quicker resonse. This seems good compromize for me.
    But I suspect that in your real code you are wanting to do more in the while than just sleep?
    Yes. What I do in real "while loop" is like this.

    1. sleep 30 seconds
    2. check database
    3. image conversions if there is records


    Thanks for your advice.
      I found Term::ReadKey can capture ctrl + c on windows
      use strict; use warnings; use Term::ReadKey; ReadMode "raw"; #raw can capture ctrl + c while(1){ print "prompt>\n"; #sleep 30 seconds my $char = ReadKey 30; next if (! defined $char); if (ord $char == 3 ){ print "control + c\n"; last; } #check database #process image } ReadMode "restore";
      If I pressed ctrl + c while processing something, it will abort. So if I could write like this... (there seems no such function like "BindEvent").
      ReadMode "raw"; #raw can capture ctrl + c BindEvent "keypress", sub { my ($keycode) = @_; if ($keycode == 3){ ReadMode "restore"; #disconnect database exit; } }; #main loop while(1){ ReadKey 30; #check database #process images } ReadMode "restore";
      regards.

      updated:
      I read about Glib main loop,  Re: Perl Hotkey/Shortcut. I'll try it after I sleep several hours;