]> diplodocus.org Git - flac-archive/commitdiff
Make handling of child process death consistent.
authorepg <>
Sat, 30 Oct 2004 17:25:01 +0000 (17:25 +0000)
committerepg <>
Sat, 30 Oct 2004 17:25:01 +0000 (17:25 +0000)
fa-flacd
fa-rip

index 2c6e103..3e9e7cb 100755 (executable)
--- a/fa-flacd
+++ b/fa-flacd
@@ -90,12 +90,16 @@ sub flac {
                      'cue', '--no-padding', '--best',
                      map({ ('-T', $_) } @tags),
                      'wav');
-    if (WIFEXITED($status) and ($status = WEXITSTATUS($status)) != 0) {
-        die("flac: $status");
+    if (WIFEXITED($status)) {
+        if (($status = WEXITSTATUS($status)) != 0) {
+            die("flac exited with status $status");
+        }
     } elsif (WIFSIGNALED($status)) {
         die("flac killed with signal ", WTERMSIG($status));
     } elsif (WIFSTOPPED($status)) {
         die("flac stopped with signal ", WSTOPSIG($status));
+    } else {
+        die("Major horkage on system(flac): \$? = $? \$! = $!");
     }
 
     verbose("Cleaning up $dir\n");
@@ -150,11 +154,11 @@ sub deljob {
 
     verbose("$pid finished (");
     if (WIFEXITED($status)) {
-        verbose('exited ', WEXITSTATUS($status));
+        verbose('exited with status ', WEXITSTATUS($status));
     } elsif (WIFSIGNALED($status)) {
-        verbose('signalled ', WTERMSIG($status));
+        verbose('killed with signal ', WTERMSIG($status));
     } elsif (WIFSTOPPED($status)) {
-        verbose('stopped ', WSTOPSIG($status));
+        verbose('stopped with signal ', WSTOPSIG($status));
     }
     verbose(")\n");
 
diff --git a/fa-rip b/fa-rip
index 5e91afa..1a9bc2a 100755 (executable)
--- a/fa-rip
+++ b/fa-rip
@@ -31,22 +31,16 @@ sub run_or_die {
     my $command = shift;
     my $status;
 
-    system($command);
+    $status = system($command);
 
-    if (WIFEXITED($?)) {
-        $status = WEXITSTATUS($?);
-        if ($status != 0) {
-            die("$command exited $status");
+    if (WIFEXITED($status)) {
+        if (($status = WEXITSTATUS($status)) != 0) {
+            die("$command exited with status $status");
         }
-
-    } elsif (WIFSIGNALED($?)) {
-        $status = WTERMSIG($?);
-        die("$command signalled $status");
-
-    } elsif (WIFSTOPPED($?)) {
-        $status = WSTOPSIG($?);
-        die("$command stopped $status");
-
+    } elsif (WIFSIGNALED($status)) {
+        die("$command killed with signal ", WTERMSIG($status));
+    } elsif (WIFSTOPPED($status)) {
+        die("$command stopped with signal ", WSTOPSIG($status));
     } else {
         die("Major horkage on system($command): \$? = $? \$! = $!");
     }