[launchd-changes] [22905] trunk/launchd/src/launchd_core_logic.c
source_changes at macosforge.org
source_changes at macosforge.org
Tue Oct 17 11:29:45 PDT 2006
Revision: 22905
http://trac.macosforge.org/projects/launchd/changeset/22905
Author: zarzycki at apple.com
Date: 2006-10-17 11:29:44 -0700 (Tue, 17 Oct 2006)
Log Message:
-----------
Deallocate the per job Mach port sooner.
This port is used if-and-only-if the job is created via bootstrap_create_server().
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-17 17:56:58 UTC (rev 22904)
+++ trunk/launchd/src/launchd_core_logic.c 2006-10-17 18:29:44 UTC (rev 22905)
@@ -689,10 +689,12 @@
}
/* preflight the string so we know how big it is */
- sprintf(buf, "100000.%s", basename((char *)argv[0]));
+ sprintf(buf, "%s.%s", sizeof(void *) == 8 ? "0xdeadbeeffeedface" : "0xbabecafe", basename((char *)argv[0]));
j = job_new(jbs, buf, NULL, argv, NULL, MACH_PORT_NULL);
+ sprintf(j->label, "%p.%s", j, basename(j->argv[0]));
+
free(argv);
if (!job_assumes(jbs, j != NULL)) {
@@ -713,10 +715,8 @@
goto out_bad;
}
- sprintf(j->label, "%d.%s", MACH_PORT_INDEX(j->bs_port), basename(j->argv[0]));
+ job_log(j, LOG_INFO, "Legacy%s server created in bootstrap: %x", ond ? " on-demand" : "", jbs->bs_port);
- job_log(j, LOG_INFO, "New%s server in bootstrap: %x", ond ? " on-demand" : "", jbs->bs_port);
-
return j;
out_bad:
@@ -3175,6 +3175,9 @@
{
j->priv_port_has_senders = false;
+ job_assumes(j, launchd_mport_close_recv(j->bs_port) == KERN_SUCCESS);
+ j->bs_port = 0;
+
job_log(j, LOG_DEBUG, "No more senders on privileged Mach bootstrap port");
job_dispatch(j, false);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20061017/701f18ca/attachment.html
More information about the launchd-changes
mailing list