[launchd-changes] [23396] trunk/launchd/src/launchd_core_logic.c

source_changes at macosforge.org source_changes at macosforge.org
Mon Sep 17 13:00:36 PDT 2007


Revision: 23396
          http://trac.macosforge.org/projects/launchd/changeset/23396
Author:   zarzycki at apple.com
Date:     2007-09-17 13:00:36 -0700 (Mon, 17 Sep 2007)

Log Message:
-----------
More documentation.

Modified Paths:
--------------
    trunk/launchd/src/launchd_core_logic.c

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2007-09-17 19:41:22 UTC (rev 23395)
+++ trunk/launchd/src/launchd_core_logic.c	2007-09-17 20:00:36 UTC (rev 23396)
@@ -1967,6 +1967,19 @@
 		 */
 		killpg(j->p, SIGKILL);
 
+		/*
+		 * 5020256
+		 *
+		 * The current implementation of ptrace() causes the traced process to
+		 * be abducted away from the true parent and adopted by the tracer.
+		 *
+		 * Once the tracing process relinquishes control, the kernel then
+		 * restores the true parent/child relationship.
+		 *
+		 * Unfortunately, the wait*() family of APIs is unaware of the temporarily
+		 * data structures changes, and they return an error if reality hasn't
+		 * been restored by the time they are called.
+		 */
 		if (!job_assumes(j, wait4(j->p, &status, 0, &ru) != -1)) {
 			job_log(j, LOG_NOTICE, "Working around 5020256. Assuming the job crashed.");
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070917/c658a670/attachment.html


More information about the launchd-changes mailing list