|
|
|
@ -23,8 +23,10 @@ void Synchronization::SignalObject(SynchronizationObject& obj) const { |
|
|
|
if (obj.IsSignaled()) { |
|
|
|
for (auto thread : obj.GetWaitingThreads()) { |
|
|
|
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->ResumeFromWait(); |
|
|
|
} |
|
|
|
|