Explorar el Código

Synchronization: Correct wide Assertion.

Fernando Sahmkow hace 6 años
padre
commit
8a78fc2580
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      src/core/hle/kernel/synchronization.cpp

+ 4 - 2
src/core/hle/kernel/synchronization.cpp

@@ -23,8 +23,10 @@ void Synchronization::SignalObject(SynchronizationObject& obj) const {
     if (obj.IsSignaled()) {
     if (obj.IsSignaled()) {
         for (auto thread : obj.GetWaitingThreads()) {
         for (auto thread : obj.GetWaitingThreads()) {
             if (thread->GetSchedulingStatus() == ThreadSchedStatus::Paused) {
             if (thread->GetSchedulingStatus() == ThreadSchedStatus::Paused) {
-                ASSERT(thread->GetStatus() == ThreadStatus::WaitSynch);
-                ASSERT(thread->IsWaitingSync());
+                if (thread->GetStatus() != ThreadStatus::WaitHLEEvent) {
+                    ASSERT(thread->GetStatus() == ThreadStatus::WaitSynch);
+                    ASSERT(thread->IsWaitingSync());
+                }
                 thread->SetSynchronizationResults(&obj, RESULT_SUCCESS);
                 thread->SetSynchronizationResults(&obj, RESULT_SUCCESS);
                 thread->ResumeFromWait();
                 thread->ResumeFromWait();
             }
             }