[launchd-changes] [22960] trunk/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Wed Nov 29 09:40:04 PST 2006
Revision: 22960
http://trac.macosforge.org/projects/launchd/changeset/22960
Author: zarzycki at apple.com
Date: 2006-11-29 09:40:04 -0800 (Wed, 29 Nov 2006)
Log Message:
-----------
One less global.
Modified Paths:
--------------
trunk/launchd/src/launchd.c
trunk/launchd/src/launchd_core_logic.c
trunk/launchd/src/launchd_core_logic.h
trunk/launchd/src/launchd_runtime.c
Modified: trunk/launchd/src/launchd.c
===================================================================
--- trunk/launchd/src/launchd.c 2006-11-29 00:04:29 UTC (rev 22959)
+++ trunk/launchd/src/launchd.c 2006-11-29 17:40:04 UTC (rev 22960)
@@ -659,7 +659,7 @@
void
launchd_post_kevent(void)
{
- if (shutdown_in_progress && total_children == 0) {
+ if (shutdown_in_progress && jobmgr_is_idle(root_jobmgr)) {
shutdown_in_progress = false;
if (getpid() != 1) {
Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c 2006-11-29 00:04:29 UTC (rev 22959)
+++ trunk/launchd/src/launchd_core_logic.c 2006-11-29 17:40:04 UTC (rev 22960)
@@ -339,7 +339,6 @@
static char **mach_cmd2argv(const char *string);
jobmgr_t root_jobmgr;
jobmgr_t gc_this_jobmgr;
-size_t total_children;
void
simple_zombie_reaper(void *obj __attribute__((unused)), struct kevent *kev)
@@ -598,7 +597,6 @@
job_reap(j);
} else {
/* we've attached the simple zombie reaper, we're going to delete the job before it is dead */
- total_children--;
job_stop(j);
}
}
@@ -1619,7 +1617,6 @@
}
}
- total_children--;
j->last_exit_status = status;
j->p = 0;
}
@@ -1807,7 +1804,6 @@
break;
default:
j->p = c;
- total_children++;
job_assumes(j, close(execspair[1]) == 0);
j->execfd = _fd(execspair[0]);
if (sipc) {
@@ -3000,6 +2996,20 @@
}
}
+bool
+jobmgr_is_idle(jobmgr_t jm)
+{
+ job_t ji;
+
+ SLIST_FOREACH(ji, &jm->jobs, sle) {
+ if (ji->p) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
char *
jobmgr_get_stdout(jobmgr_t jm)
{
Modified: trunk/launchd/src/launchd_core_logic.h
===================================================================
--- trunk/launchd/src/launchd_core_logic.h 2006-11-29 00:04:29 UTC (rev 22959)
+++ trunk/launchd/src/launchd_core_logic.h 2006-11-29 17:40:04 UTC (rev 22960)
@@ -28,8 +28,8 @@
extern jobmgr_t root_jobmgr;
extern jobmgr_t gc_this_jobmgr;
-extern size_t total_children;
+bool jobmgr_is_idle(jobmgr_t jm);
void jobmgr_remove_all_inactive(jobmgr_t jm);
void jobmgr_dispatch_all_other_semaphores(jobmgr_t jm, job_t nj);
job_t jobmgr_find(jobmgr_t jm, const char *label);
Modified: trunk/launchd/src/launchd_runtime.c
===================================================================
--- trunk/launchd/src/launchd_runtime.c 2006-11-29 00:04:29 UTC (rev 22959)
+++ trunk/launchd/src/launchd_runtime.c 2006-11-29 17:40:04 UTC (rev 22960)
@@ -74,6 +74,7 @@
static void async_callback(void);
static kq_callback kqasync_callback = (kq_callback)async_callback;
+static void record_caller_creds(mach_msg_header_t *mh);
static void launchd_runtime2(mach_msg_size_t msg_size, mig_reply_error_t *bufRequest, mig_reply_error_t *bufReply);
static mach_msg_size_t max_msg_size;
static mig_callback *mig_cb_table;
@@ -477,7 +478,7 @@
return KERN_SUCCESS;
}
-static void
+void
record_caller_creds(mach_msg_header_t *mh)
{
mach_msg_max_trailer_t *tp;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20061129/3df93340/attachment.html
More information about the launchd-changes
mailing list