[launchd-changes] [22996] trunk/launchd/src

source_changes at macosforge.org source_changes at macosforge.org
Fri Dec 22 11:05:57 PST 2006


Revision: 22996
          http://trac.macosforge.org/projects/launchd/changeset/22996
Author:   zarzycki at apple.com
Date:     2006-12-22 11:05:56 -0800 (Fri, 22 Dec 2006)

Log Message:
-----------
<rdar://problem/4802454> CAS: WindowServer hangs in CGXProcessHIDEvent/.../CGXPseudoActivateWindow/.../_LSDoSetFrontProcess

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

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2006-12-21 19:43:50 UTC (rev 22995)
+++ trunk/launchd/src/launchd_core_logic.c	2006-12-22 19:05:56 UTC (rev 22996)
@@ -748,6 +748,11 @@
 		goto out_bad2;
 	}
 
+	if (!job_assumes(j, launchd_mport_notify_req(j->j_port, MACH_NOTIFY_NO_SENDERS) == KERN_SUCCESS)) {
+		job_assumes(j, launchd_mport_close_recv(j->j_port) == KERN_SUCCESS);
+		goto out_bad;
+	}
+
 	return true;
 out_bad2:
 	job_assumes(j, launchd_mport_close_recv(j->j_port) == KERN_SUCCESS);
@@ -788,11 +793,6 @@
 		goto out_bad;
 	}
 
-	if (!job_assumes(jr, launchd_mport_notify_req(jr->j_port, MACH_NOTIFY_NO_SENDERS) == KERN_SUCCESS)) {
-		job_assumes(jr, launchd_mport_close_recv(jr->j_port) == KERN_SUCCESS);
-		goto out_bad;
-	}
-
 	job_log(jr, LOG_INFO, "Legacy%s server created", ond ? " on-demand" : "");
 
 	return jr;
@@ -2691,9 +2691,12 @@
 bool
 job_useless(job_t j)
 {
-	/* Yes, j->unload_at_exit and j->j->only_once seem the same, but they'll differ someday... */
+	/* Yes, j->unload_at_exit and j->only_once seem the same, but they'll differ someday... */
 
 	if ((j->unload_at_exit || j->only_once) && j->start_time != 0) {
+		if (j->unload_at_exit && j->j_port) {
+			return false;
+		}
 		job_log(j, LOG_INFO, "Exited. Was only configured to run once.");
 		return true;
 	} else if (shutdown_in_progress) {

Modified: trunk/launchd/src/libvproc.c
===================================================================
--- trunk/launchd/src/libvproc.c	2006-12-21 19:43:50 UTC (rev 22995)
+++ trunk/launchd/src/libvproc.c	2006-12-22 19:05:56 UTC (rev 22996)
@@ -170,22 +170,11 @@
 	return -1;
 }
 
-#if 0
 kern_return_t
 mpm_wait(mach_port_t ajob __attribute__((unused)), int *wstatus)
 {
-	/* Stubbed out for now...
-	 * <rdar://problem/4802454> CAS: WindowServer hangs in CGXProcessHIDEvent/.../CGXPseudoActivateWindow/.../_LSDoSetFrontProcess
-	 */
 	return vproc_mig_wait(ajob, wstatus);
 }
-#else
-kern_return_t
-mpm_wait(mach_port_t ajob __attribute__((unused)), int *wstatus __attribute__((unused)))
-{
-	return MIG_BAD_ID;
-}
-#endif
 
 kern_return_t
 mpm_uncork_fork(mach_port_t ajob)

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


More information about the launchd-changes mailing list