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

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.
  • Comment on Re^2: ctrl + c on Win32 (signal handling)

Replies are listed 'Best First'.
Re^3: ctrl + c on Win32 (signal handling)
by remiah (Hermit) on Aug 26, 2011 at 21:06 UTC
    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;