[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