[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