From dbf1aa182ecb0b0a08024fbc9d80a38cf33fc92d Mon Sep 17 00:00:00 2001 From: Ben Vanik Date: Sun, 12 Jan 2014 02:34:22 -0800 Subject: [PATCH] Fixing WaitForMultipleObjects --- src/xenia/kernel/xboxkrnl_threading.cc | 2 ++ src/xenia/kernel/xobject.cc | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/xenia/kernel/xboxkrnl_threading.cc b/src/xenia/kernel/xboxkrnl_threading.cc index 3fb5da1f2..c72f447fa 100644 --- a/src/xenia/kernel/xboxkrnl_threading.cc +++ b/src/xenia/kernel/xboxkrnl_threading.cc @@ -1152,6 +1152,8 @@ SHIM_CALL KeWaitForMultipleObjects_shim( count, objects_ptr, wait_type, wait_reason, processor_mode, alertable, timeout_ptr, wait_block_array_ptr); + XEASSERT(wait_type >= 0 && wait_type <= 1); + X_STATUS result = X_STATUS_SUCCESS; XObject** objects = (XObject**)alloca(sizeof(XObject*) * count); diff --git a/src/xenia/kernel/xobject.cc b/src/xenia/kernel/xobject.cc index f406689a6..82564c3c2 100644 --- a/src/xenia/kernel/xobject.cc +++ b/src/xenia/kernel/xobject.cc @@ -143,7 +143,7 @@ X_STATUS XObject::WaitMultiple( DWORD result = WaitForMultipleObjectsEx( count, wait_handles, - wait_type ? TRUE : FALSE, timeout_ms, alertable); + wait_type ? FALSE : TRUE, timeout_ms, alertable); return result; }