1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
Index: yaret-2.1.0/yaret
===================================================================
--- yaret-2.1.0.orig/yaret 2006-03-05 12:39:25.000000000 +0100
+++ yaret-2.1.0/yaret 2006-03-05 12:39:55.000000000 +0100
@@ -449,6 +449,7 @@
my $track = {}; # traslated Audio::CD::Info->tracks
my %status; # holds the filehandles to read status from
my $grand_dad = 1; # are we the main parent?
+my $alarm = 0; # set to 1 when an alarm signal is received
sub kill_all {
kill "SIGINT" => keys %kid;
@@ -466,7 +467,7 @@
}
sub set_default_signals {
- $SIG{ALRM} = sub{};#'IGNORE';
+ $SIG{ALRM} = sub { $alarm = 1 };
$SIG{CHLD} = \&kid_killer;
$SIG{INT} = \&kill_all;
$SIG{TERM} = \&kill_all;
@@ -1065,7 +1066,8 @@
send_message($parent, type=>'startup');
my @found;
do {
- sleep;
+ sleep unless $alarm;
+ $alarm = 0;
my $glob = make_filename "*", $settings{from_name};
@found = glob($glob);
$workfile{$_} = 1 for @found;
@@ -1119,7 +1121,9 @@
printc $INFO, "Waiting for work: \u$settings{name}\n";
send_message($parent, type=>'startup');
do {
- sleep, check_message;
+ sleep unless $alarm;
+ $alarm = 0;
+ check_message;
my $glob = make_filename "*", $settings{from_name};
my $track_regex = make_filename '(\\d+)', $settings{from_name};
$track_regex = '^'.$track_regex.'$';
@@ -1148,7 +1152,11 @@
$my_kid{$filename} = make_kid $settings{name}."_kid", $settings{sub_call}, $track_num, %settings;
}
} while $done < keys %{$track};
- (sleep, check_message) until kid_done $settings{name}."_kid";
+ until (kid_done $settings{name}."_kid") {
+ sleep unless $alarm;
+ $alarm = 0;
+ check_message;
+ };
}
sub send_signal {
@@ -1329,8 +1337,11 @@
$status{group}{$encoder} = 'encoder';
}
-sleep, print_status
- until kid_done keys %{ $status{kid} };
+do {
+ sleep unless $alarm;
+ $alarm = 0;
+ print_status;
+} until kid_done keys %{ $status{kid} };
rmdir $root_work;
|