SVC: WaitSynchronization add Termination Pending Result.
This commit is contained in:
parent
725bac1404
commit
535c542d84
|
@ -12,6 +12,7 @@ namespace Kernel {
|
||||||
|
|
||||||
constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED{ErrorModule::Kernel, 7};
|
constexpr ResultCode ERR_MAX_CONNECTIONS_REACHED{ErrorModule::Kernel, 7};
|
||||||
constexpr ResultCode ERR_INVALID_CAPABILITY_DESCRIPTOR{ErrorModule::Kernel, 14};
|
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_SIZE{ErrorModule::Kernel, 101};
|
||||||
constexpr ResultCode ERR_INVALID_ADDRESS{ErrorModule::Kernel, 102};
|
constexpr ResultCode ERR_INVALID_ADDRESS{ErrorModule::Kernel, 102};
|
||||||
constexpr ResultCode ERR_OUT_OF_RESOURCES{ErrorModule::Kernel, 103};
|
constexpr ResultCode ERR_OUT_OF_RESOURCES{ErrorModule::Kernel, 103};
|
||||||
|
|
|
@ -59,7 +59,10 @@ std::pair<ResultCode, Handle> Synchronization::WaitFor(
|
||||||
return {RESULT_TIMEOUT, InvalidHandle};
|
return {RESULT_TIMEOUT, InvalidHandle};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// TODO(Blinkhawk): Check for termination pending
|
if (thread->IsPendingTermination()) {
|
||||||
|
lock.CancelSleep();
|
||||||
|
return {ERR_THREAD_TERMINATING, InvalidHandle};
|
||||||
|
}
|
||||||
|
|
||||||
if (thread->IsSyncCancelled()) {
|
if (thread->IsSyncCancelled()) {
|
||||||
thread->SetSyncCancelled(false);
|
thread->SetSyncCancelled(false);
|
||||||
|
|
Reference in New Issue