rule 发表于 2018-8-31 12:35:07

Perl开发: SIG{INT}理解

  
中断信号 的handle函数可能在执行的过程中被进一步的中断,如果这个handle函数执行过程比较长。并且会recursively调用之前的中断Handle函数。所以最保险的做法是在handle函数声明内部的SIG函数。
  

  
参考的demo code
  

  
$int = 0;
  
$SIG{INT} = sub {   $int = 1;
  
$SIG{INT} = 'IGNORE';
  
$ index=0;
  
while(1)
  
{
  
print "inside INT $index ....\n";
  
$index++;
  
sleep(2);
  
if($index >500)
  
{
  
last;
  
}
  
}
  

  
};
  

  
while (1) {
  
print "Processing..\n";
  
sleep 1;
  
if ($int == 1) {
  
print "Break? ";
  
$_ = ;
  
chomp;
  
if (/y/i) {
  
exit;
  
}
  
else {
  
$int = 0;
  
}
  
}
  
}
  



页: [1]
查看完整版本: Perl开发: SIG{INT}理解