Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Jan 2011 14:38:17 +0000 (UTC)
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r217308 - head/sbin/hastd
Message-ID:  <201101121438.p0CEcHWW092155@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pjd
Date: Wed Jan 12 14:38:17 2011
New Revision: 217308
URL: http://svn.freebsd.org/changeset/base/217308

Log:
  Add a note that when custom signal handler is installed for a signal,
  signal action is restored to default in child after fork(2).
  In this case there is no need to do anything with dummy SIGCHLD handler,
  because after fork(2) it will be automatically reverted to SIG_IGN.
  
  Obtained from:	Wheel Systems Sp. z o.o. http://www.wheelsystems.com
  MFC after:	3 days

Modified:
  head/sbin/hastd/hooks.c

Modified: head/sbin/hastd/hooks.c
==============================================================================
--- head/sbin/hastd/hooks.c	Wed Jan 12 14:35:29 2011	(r217307)
+++ head/sbin/hastd/hooks.c	Wed Jan 12 14:38:17 2011	(r217308)
@@ -372,6 +372,11 @@ hook_execv(const char *path, va_list ap)
 		descriptors();
 		PJDLOG_VERIFY(sigemptyset(&mask) == 0);
 		PJDLOG_VERIFY(sigprocmask(SIG_SETMASK, &mask, NULL) == 0);
+		/*
+		 * Dummy handler set for SIGCHLD in the parent should be
+		 * changed after fork(2) automatically to the default SIG_IGN,
+		 * so there is no need to do anything with it.
+		 */
 		execv(path, args);
 		pjdlog_errno(LOG_ERR, "Unable to execute %s", path);
 		exit(EX_SOFTWARE);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101121438.p0CEcHWW092155>