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

source_changes at macosforge.org source_changes at macosforge.org
Fri Oct 13 08:00:25 PDT 2006


Revision: 22894
          http://trac.macosforge.org/projects/launchd/changeset/22894
Author:   zarzycki at apple.com
Date:     2006-10-13 08:00:25 -0700 (Fri, 13 Oct 2006)

Log Message:
-----------
Only allocate the per-job Mach port as needed.

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

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2006-10-13 14:52:18 UTC (rev 22893)
+++ trunk/launchd/src/launchd_core_logic.c	2006-10-13 15:00:25 UTC (rev 22894)
@@ -683,6 +683,10 @@
 	j->legacy_mach_job = true;
 	j->priv_port_has_senders = true; /* the IPC that called us will make-send on this port */
 
+	if (!job_setup_machport(j)) {
+		goto out_bad;
+	}
+
 	if (!job_assumes(j, launchd_mport_notify_req(j->bs_port, MACH_NOTIFY_NO_SENDERS) == KERN_SUCCESS)) {
 		job_assumes(j, launchd_mport_close_recv(j->bs_port) == KERN_SUCCESS);
 		goto out_bad;
@@ -816,10 +820,6 @@
 	j->checkedin = true;
 	j->firstborn = (strcmp(label, FIRSTBORN_LABEL) == 0);
 
-	if (!job_setup_machport(j)) {
-		goto out_bad;
-	}
-
 	if (reqport != MACH_PORT_NULL) {
 		j->req_port = reqport;
 		if (!job_assumes(j, launchd_mport_notify_req(reqport, MACH_NOTIFY_DEAD_NAME) == KERN_SUCCESS)) {
@@ -1673,10 +1673,6 @@
 
 	time(&j->start_time);
 
-	if (j->bs_port) {
-		job_assumes(j, launchd_mport_notify_req(j->bs_port, MACH_NOTIFY_NO_SENDERS) == KERN_SUCCESS);
-	}
-
 	switch (c = job_fork(j->parent)) {
 	case -1:
 		job_log_error(j, LOG_ERR, "fork() failed, will try again in one second");

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


More information about the launchd-changes mailing list