pdd
changeset 2 6fae69860129
parent 1 383d9f5021f8
child 3 944224048b5a
equal deleted inserted replaced
1:383d9f5021f8 2:6fae69860129
     2 
     2 
     3 use 5.010;
     3 use 5.010;
     4 use strict;
     4 use strict;
     5 use warnings;
     5 use warnings;
     6 use threads;
     6 use threads;
       
     7 use Getopt::Long;
     7 
     8 
     8 sub dd;
     9 sub dd;
     9 sub timer;
    10 sub timer;
    10 sub main;
    11 sub main;
    11 sub kbd;
    12 sub kbd;
    12 
    13 
       
    14 our $o_interval = 10;
       
    15 
    13 MAIN: {
    16 MAIN: {
    14     $| = 1;
    17     $| = 1;
    15     my $dd;
    18     my $dd;
       
    19 
       
    20     GetOptions("i|interval=i" => \$o_interval)
       
    21 	or die "Usage: $0 [-i|--interval n] <dd options>\n";
    16 
    22 
    17     $SIG{INT} = sub {
    23     $SIG{INT} = sub {
    18         if (defined $dd) {
    24         if (defined $dd) {
    19             warn "Got $_[0], going to kill dd(pid:$dd)\n";
    25             warn "Got $_[0], going to kill dd(pid:$dd)\n";
    20             kill $_[0] => $dd;
    26             kill $_[0] => $dd;
    94     # just sleep 1 second to make the thread killer more 
   100     # just sleep 1 second to make the thread killer more 
    95     # that what we would expect
   101     # that what we would expect
    96     while (1) {
   102     while (1) {
    97         sleep 1;
   103         sleep 1;
    98         kill "USR1" => $pid
   104         kill "USR1" => $pid
    99           if ++$i % 10 == 0;
   105           if ++$i % $o_interval == 0;
   100     }
   106     }
   101 }
   107 }
   102 
   108 
   103 sub kbd {
   109 sub kbd {
   104     my $pid = shift;
   110     my $pid = shift;