Jelajahi Sumber

hle: kernel: KThread: DummyThread can be waited, ensure wait_queue is not nullptr.

bunnei 4 tahun lalu
induk
melakukan
91ff6d4cb3
1 mengubah file dengan 6 tambahan dan 6 penghapusan
  1. 6 6
      src/core/hle/kernel/k_thread.cpp

+ 6 - 6
src/core/hle/kernel/k_thread.cpp

@@ -1097,14 +1097,14 @@ void KThread::EndWait(ResultCode wait_result_) {
     // Lock the scheduler.
     KScopedSchedulerLock sl(kernel);
 
-    // Dummy threads are just used by host threads for locking, and will never have a wait_queue.
-    if (thread_type == ThreadType::Dummy) {
-        ASSERT_MSG(false, "Dummy threads should never call EndWait!");
-        return;
-    }
-
     // If we're waiting, notify our queue that we're available.
     if (GetState() == ThreadState::Waiting) {
+        if (wait_queue == nullptr) {
+            // This should never happen, but avoid a hard crash below to get this logged.
+            ASSERT_MSG(false, "wait_queue is nullptr!");
+            return;
+        }
+
         wait_queue->EndWait(this, wait_result_);
     }
 }