Merge pull request #226 from bunnei/svc-and-thread-fixes
Svc and thread fixes
This commit is contained in:
commit
a5afad0937
|
@ -143,7 +143,7 @@ void ChangeReadyState(Thread* t, bool ready) {
|
||||||
/// Verify that a thread has not been released from waiting
|
/// Verify that a thread has not been released from waiting
|
||||||
inline bool VerifyWait(const Thread* thread, WaitType type, Handle wait_handle) {
|
inline bool VerifyWait(const Thread* thread, WaitType type, Handle wait_handle) {
|
||||||
_dbg_assert_(KERNEL, thread != nullptr);
|
_dbg_assert_(KERNEL, thread != nullptr);
|
||||||
return type == thread->wait_type && wait_handle == thread->wait_handle;
|
return (type == thread->wait_type) && (wait_handle == thread->wait_handle) && (thread->IsWaiting());
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Stops the current thread
|
/// Stops the current thread
|
||||||
|
|
|
@ -189,6 +189,8 @@ static Result CreateAddressArbiter(u32* arbiter) {
|
||||||
|
|
||||||
/// Arbitrate address
|
/// Arbitrate address
|
||||||
static Result ArbitrateAddress(Handle arbiter, u32 address, u32 type, u32 value, s64 nanoseconds) {
|
static Result ArbitrateAddress(Handle arbiter, u32 address, u32 type, u32 value, s64 nanoseconds) {
|
||||||
|
DEBUG_LOG(SVC, "called handle=0x%08X, address=0x%08X, type=0x%08X, value=0x%08X", arbiter,
|
||||||
|
address, type, value);
|
||||||
return Kernel::ArbitrateAddress(arbiter, static_cast<Kernel::ArbitrationType>(type),
|
return Kernel::ArbitrateAddress(arbiter, static_cast<Kernel::ArbitrationType>(type),
|
||||||
address, value).raw;
|
address, value).raw;
|
||||||
}
|
}
|
||||||
|
@ -331,6 +333,9 @@ static Result ClearEvent(Handle evt) {
|
||||||
/// Sleep the current thread
|
/// Sleep the current thread
|
||||||
static void SleepThread(s64 nanoseconds) {
|
static void SleepThread(s64 nanoseconds) {
|
||||||
DEBUG_LOG(SVC, "called nanoseconds=%lld", nanoseconds);
|
DEBUG_LOG(SVC, "called nanoseconds=%lld", nanoseconds);
|
||||||
|
|
||||||
|
// Check for next thread to schedule
|
||||||
|
HLE::Reschedule(__func__);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This returns the total CPU ticks elapsed since the CPU was powered-on
|
/// This returns the total CPU ticks elapsed since the CPU was powered-on
|
||||||
|
|
Loading…
Reference in New Issue