summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-06-22 09:19:08 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-06-22 09:19:08 (GMT)
commitb879de1812f390e20f5ac7eb3aad9f83db02fae1 (patch)
treebd33cfe69cf73133ea7a972976bf9f62e5b9a6b4
parente94528a0e99ea54520b8aff016275a7622c55a47 (diff)
parentf0b7367cb124a628b80697f5ed095c5859022e21 (diff)
downloadgit-b879de1812f390e20f5ac7eb3aad9f83db02fae1.zip
git-b879de1812f390e20f5ac7eb3aad9f83db02fae1.tar.gz
git-b879de1812f390e20f5ac7eb3aad9f83db02fae1.tar.bz2
Merge branch 'jc/waitpid'
* jc/waitpid: Restore SIGCHLD to SIG_DFL where we care about waitpid().
-rw-r--r--connect.c5
-rw-r--r--daemon.c5
-rw-r--r--merge-index.c5
3 files changed, 15 insertions, 0 deletions
diff --git a/connect.c b/connect.c
index 52d709e..db7342e 100644
--- a/connect.c
+++ b/connect.c
@@ -581,6 +581,11 @@ int git_connect(int fd[2], char *url, const char *prog)
enum protocol protocol = PROTO_LOCAL;
int free_path = 0;
+ /* Without this we cannot rely on waitpid() to tell
+ * what happened to our children.
+ */
+ signal(SIGCHLD, SIG_DFL);
+
host = strstr(url, "://");
if(host) {
*host = '\0';
diff --git a/daemon.c b/daemon.c
index bdfe80d..a19b7b5 100644
--- a/daemon.c
+++ b/daemon.c
@@ -673,6 +673,11 @@ int main(int argc, char **argv)
int inetd_mode = 0;
int i;
+ /* Without this we cannot rely on waitpid() to tell
+ * what happened to our children.
+ */
+ signal(SIGCHLD, SIG_DFL);
+
for (i = 1; i < argc; i++) {
char *arg = argv[i];
diff --git a/merge-index.c b/merge-index.c
index 024196e..190e12f 100644
--- a/merge-index.c
+++ b/merge-index.c
@@ -99,6 +99,11 @@ int main(int argc, char **argv)
{
int i, force_file = 0;
+ /* Without this we cannot rely on waitpid() to tell
+ * what happened to our children.
+ */
+ signal(SIGCHLD, SIG_DFL);
+
if (argc < 3)
usage("git-merge-index [-o] [-q] <merge-program> (-a | <filename>*)");