mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Merge pull request #226 from bunnei/svc-and-thread-fixes
Svc and thread fixes
This commit is contained in:
		
						commit
						a5afad0937
					
				
					 2 changed files with 6 additions and 1 deletions
				
			
		|  | @ -143,7 +143,7 @@ void ChangeReadyState(Thread* t, bool ready) { | |||
| /// Verify that a thread has not been released from waiting
 | ||||
| inline bool VerifyWait(const Thread* thread, WaitType type, Handle wait_handle) { | ||||
|     _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
 | ||||
|  |  | |||
|  | @ -189,6 +189,8 @@ static Result CreateAddressArbiter(u32* arbiter) { | |||
| 
 | ||||
| /// Arbitrate address
 | ||||
| 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), | ||||
|             address, value).raw; | ||||
| } | ||||
|  | @ -331,6 +333,9 @@ static Result ClearEvent(Handle evt) { | |||
| /// Sleep the current thread
 | ||||
| static void SleepThread(s64 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
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue