[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