[launchd-changes] [22856] trunk/launchd/src/launchd_runtime.c

source_changes at macosforge.org source_changes at macosforge.org
Thu Sep 14 18:01:54 PDT 2006


Revision: 22856
Author:   zarzycki at apple.com
Date:     2006-09-14 18:01:52 -0700 (Thu, 14 Sep 2006)

Log Message:
-----------
Actually update the max message size before we enter the run loop again...

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

Modified: trunk/launchd/src/launchd_runtime.c
===================================================================
--- trunk/launchd/src/launchd_runtime.c	2006-09-15 00:41:46 UTC (rev 22855)
+++ trunk/launchd/src/launchd_runtime.c	2006-09-15 01:01:52 UTC (rev 22856)
@@ -208,33 +208,32 @@
 void
 launchd_runtime(void)
 {
-	mig_reply_error_t *req = NULL, *rep = NULL;
+	mig_reply_error_t *req = NULL, *resp = NULL;
 	mach_msg_size_t mz = max_msg_size;
-	kern_return_t kr;
+	int flags = VM_MAKE_TAG(VM_MEMORY_MACH_MSG)|TRUE;
 
 	for (;;) {
-		kr = vm_allocate(mach_task_self(), (vm_address_t *)&req, mz, VM_MAKE_TAG(VM_MEMORY_MACH_MSG)|TRUE);
-		if (!launchd_assumes(kr == KERN_SUCCESS)) {
-			goto free_path;
+		if (req) {
+			launchd_assumes(vm_deallocate(mach_task_self(), (vm_address_t)req, mz) == KERN_SUCCESS);
+			req = NULL;
 		}
-
-		kr = vm_allocate(mach_task_self(), (vm_address_t *)&rep, mz, VM_MAKE_TAG(VM_MEMORY_MACH_MSG)|TRUE);
-		if (!launchd_assumes(kr == KERN_SUCCESS)) {
-			goto free_path;
+		if (resp) {
+			launchd_assumes(vm_deallocate(mach_task_self(), (vm_address_t)resp, mz) == KERN_SUCCESS);
+			resp = NULL;
 		}
 
-		/* max_msg_size might change, thus phase two... */
-		launchd_runtime2(mz, req, rep);
+		mz = max_msg_size;
 
-free_path:
-		if (req) {
-			launchd_assumes(vm_deallocate(mach_task_self(), (vm_address_t)req, mz) == KERN_SUCCESS);
-			req = NULL;
+		if (!launchd_assumes(vm_allocate(mach_task_self(), (vm_address_t *)&req, mz, flags) == KERN_SUCCESS)) {
+			continue;
 		}
-		if (rep) {
-			launchd_assumes(vm_deallocate(mach_task_self(), (vm_address_t)rep, mz) == KERN_SUCCESS);
-			rep = NULL;
+		if (!launchd_assumes(vm_allocate(mach_task_self(), (vm_address_t *)&resp, mz, flags) == KERN_SUCCESS)) {
+			continue;
 		}
+
+		launchd_runtime2(mz, req, resp);
+
+		/* If we get here, max_msg_size probably changed... */
 	}
 }
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20060914/5c476e84/attachment.html


More information about the launchd-changes mailing list