[launchd-changes] [23223] trunk/launchd/src/launchd_core_logic.c
source_changes at macosforge.org
source_changes at macosforge.org
Tue Apr 17 08:46:11 PDT 2007
Revision: 23223
http://trac.macosforge.org/projects/launchd/changeset/23223
Author: zarzycki at apple.com
Date: 2007-04-17 08:46:10 -0700 (Tue, 17 Apr 2007)
Log Message:
-----------
<rdar://problem/5138272> tag BootCache twice
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-04-16 22:33:31 UTC (rev 23222)
+++ trunk/launchd/src/launchd_core_logic.c 2007-04-17 15:46:10 UTC (rev 23223)
@@ -403,6 +403,7 @@
static char **mach_cmd2argv(const char *string);
static size_t our_strhash(const char *s) __attribute__((pure));
static mach_port_t the_exception_server;
+static bool did_first_per_user_launchd_BootCache_hack;
jobmgr_t root_jobmgr;
@@ -2180,6 +2181,10 @@
total_children++;
LIST_INSERT_HEAD(&j->mgr->active_jobs[ACTIVE_JOB_HASH(c)], j, pid_hash_sle);
+ if (j->per_user && !did_first_per_user_launchd_BootCache_hack) {
+ did_first_per_user_launchd_BootCache_hack = true;
+ }
+
if (!j->legacy_mach_job) {
job_assumes(j, runtime_close(oepair[1]) != -1);
}
@@ -2209,6 +2214,23 @@
}
}
+static void
+do_first_per_user_launchd_hack(void)
+{
+ char *bcct_tool[] = { "/usr/sbin/BootCacheControl", "tag", NULL };
+ int dummystatus;
+ pid_t bcp;
+
+ if (launchd_assumes((bcp = vfork()) != -1)) {
+ if (bcp == 0) {
+ execve(bcct_tool[0], bcct_tool, environ);
+ _exit(EXIT_FAILURE);
+ } else {
+ launchd_assumes(waitpid(bcp, &dummystatus, 0) != -1);
+ }
+ }
+}
+
void
job_start_child(job_t j)
{
@@ -2222,6 +2244,10 @@
size_t binpref_out_cnt = 0;
int i;
+ if (j->per_user && !did_first_per_user_launchd_BootCache_hack) {
+ do_first_per_user_launchd_hack();
+ }
+
job_assumes(j, posix_spawnattr_init(&spattr) == 0);
job_setup_attributes(j);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070417/24f38f57/attachment.html
More information about the launchd-changes
mailing list