[Cluster-devel] cluster/cman/qdisk score.c

lhh at sourceware.org lhh at sourceware.org
Thu Jan 24 14:58:54 UTC 2008


CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL46
Changes by:	lhh at sourceware.org	2008-01-24 14:58:54

Modified files:
	cman/qdisk     : score.c 

Log message:
	Unblock signals after fork() so heuristics using signals don't hang

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cman/qdisk/score.c.diff?cvsroot=cluster&only_with_tag=RHEL46&r1=1.1.2.4&r2=1.1.2.4.4.1

--- cluster/cman/qdisk/score.c	2007/03/20 19:36:14	1.1.2.4
+++ cluster/cman/qdisk/score.c	2008/01/24 14:58:54	1.1.2.4.4.1
@@ -75,6 +75,24 @@
 
 
 /**
+  Set all signal handlers to default for exec of a script.
+  ONLY do this after a fork().
+ */
+void
+restore_signals(void)
+{
+	sigset_t set;
+	int x;
+
+	for (x = 1; x < _NSIG; x++)
+		signal(x, SIG_DFL);
+
+	sigfillset(&set);
+	sigprocmask(SIG_UNBLOCK, &set, NULL);
+}
+
+
+/**
   Spin off a user-defined heuristic
  */
 static int
@@ -117,6 +135,7 @@
 	 */
 	set_priority(SCHED_OTHER, -1);
 	munlockall();
+	restore_signals();
 
 	argv[0] = "/bin/sh";
 	argv[1] = "-c";




More information about the Cluster-devel mailing list