Kernel: Reschedule on SignalEvent and SendSyncRequest, fix some bugs.
This commit is contained in:
parent
dde02f79af
commit
d2759c578e
|
@ -35,9 +35,9 @@ Thread* WaitObject::ReleaseNextThread() {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
auto next_thread = waiting_threads.front();
|
auto next_thread = waiting_threads.front();
|
||||||
|
waiting_threads.erase(waiting_threads.begin());
|
||||||
|
|
||||||
next_thread->ReleaseWaitObject(this);
|
next_thread->ReleaseWaitObject(this);
|
||||||
waiting_threads.erase(waiting_threads.begin());
|
|
||||||
|
|
||||||
return next_thread.get();
|
return next_thread.get();
|
||||||
}
|
}
|
||||||
|
|
|
@ -405,6 +405,7 @@ static Result DuplicateHandle(Handle* out, Handle handle) {
|
||||||
/// Signals an event
|
/// Signals an event
|
||||||
static Result SignalEvent(Handle evt) {
|
static Result SignalEvent(Handle evt) {
|
||||||
LOG_TRACE(Kernel_SVC, "called event=0x%08X", evt);
|
LOG_TRACE(Kernel_SVC, "called event=0x%08X", evt);
|
||||||
|
HLE::Reschedule(__func__);
|
||||||
return Kernel::SignalEvent(evt).raw;
|
return Kernel::SignalEvent(evt).raw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue