SVC: WaitSynchronization add Termination Pending Result.

master
Fernando Sahmkow 2020-03-07 13:37:47 +07:00
parent 725bac1404
commit 535c542d84
2 changed files with 5 additions and 1 deletions

@ -12,6 +12,7 @@ namespace Kernel {
constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED{ErrorModule::Kernel, 7};
constexpr ResultCode ERR_INVALID_CAPABILITY_DESCRIPTOR{ErrorModule::Kernel, 14};
constexpr ResultCode ERR_THREAD_TERMINATING{ErrorModule::Kernel, 59};
constexpr ResultCode ERR_INVALID_SIZE{ErrorModule::Kernel, 101};
constexpr ResultCode ERR_INVALID_ADDRESS{ErrorModule::Kernel, 102};
constexpr ResultCode ERR_OUT_OF_RESOURCES{ErrorModule::Kernel, 103};

@ -59,7 +59,10 @@ std::pair<ResultCode, Handle> Synchronization::WaitFor(
return {RESULT_TIMEOUT, InvalidHandle};
}
/// TODO(Blinkhawk): Check for termination pending
if (thread->IsPendingTermination()) {
lock.CancelSleep();
return {ERR_THREAD_TERMINATING, InvalidHandle};
}
if (thread->IsSyncCancelled()) {
thread->SetSyncCancelled(false);