Switch to side-by-side view

--- a/src/utils/execmd.cpp
+++ b/src/utils/execmd.cpp
@@ -1,5 +1,5 @@
 #ifndef lint
-static char rcsid[] = "@(#$Id: execmd.cpp,v 1.23 2007-05-21 13:30:22 dockes Exp $ (C) 2004 J.F.Dockes";
+static char rcsid[] = "@(#$Id: execmd.cpp,v 1.24 2007-05-23 08:28:35 dockes Exp $ (C) 2004 J.F.Dockes";
 #endif
 /*
  *   This program is free software; you can redistribute it and/or modify
@@ -180,6 +180,11 @@
 
     if (e.pid) {
 	// Father process
+	sigset_t blkcld;
+	sigemptyset(&blkcld);
+	sigaddset(&blkcld, SIGCHLD);
+	pthread_sigmask(SIG_BLOCK, &blkcld, 0);
+
 	if (input) {
 	    close(e.pipein[0]);
 	    e.pipein[0] = -1;
@@ -280,6 +285,8 @@
 	    e.pid = -1;
 	}
 	LOGDEB1(("ExecCmd::doexec: father got status 0x%x\n", status));
+	pthread_sigmask(SIG_UNBLOCK, &blkcld, 0);
+
 	return haderror ? -1 : status;
 
     } else {