]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/uxkern/ux_exception.c
xnu-1228.5.18.tar.gz
[apple/xnu.git] / bsd / uxkern / ux_exception.c
index 6eb09940faa0338518e2fb7e29566e414e0d8787..e63b6f3ba5052aee6559407afc38d1f09a19cc65 100644 (file)
@@ -126,7 +126,9 @@ ux_handler(void)
                        (void *) &ux_exception_port) != MACH_MSG_SUCCESS)
                panic("ux_handler: object_copyin(ux_exception_port) failed");
 
+    proc_list_lock();
     thread_wakeup(&ux_exception_port);
+    proc_list_unlock();
 
     /* Message handling loop. */
 
@@ -185,10 +187,11 @@ ux_handler_init(void)
 {
        ux_exception_port = MACH_PORT_NULL;
        (void) kernel_thread(kernel_task, ux_handler);
+       proc_list_lock();
        if (ux_exception_port == MACH_PORT_NULL)  {
-               assert_wait(&ux_exception_port, THREAD_UNINT);
-               thread_block(THREAD_CONTINUE_NULL);
+               (void)msleep(&ux_exception_port, proc_list_mlock, 0, "ux_handler_wait", 0);
        }
+       proc_list_unlock();
 }
 
 kern_return_t