hle: kernel: hle_ipc: Remove SleepClientThread.
- This was kind of hacky, and no longer is necessary with service threads.
This commit is contained in:
		
							parent
							
								
									87d6588cb5
								
							
						
					
					
						commit
						5d4715cc6a
					
				| @ -46,43 +46,6 @@ void SessionRequestHandler::ClientDisconnected( | |||||||
|     boost::range::remove_erase(connected_sessions, server_session); |     boost::range::remove_erase(connected_sessions, server_session); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| std::shared_ptr<WritableEvent> HLERequestContext::SleepClientThread( |  | ||||||
|     const std::string& reason, u64 timeout, WakeupCallback&& callback, |  | ||||||
|     std::shared_ptr<WritableEvent> writable_event) { |  | ||||||
|     // Put the client thread to sleep until the wait event is signaled or the timeout expires.
 |  | ||||||
| 
 |  | ||||||
|     if (!writable_event) { |  | ||||||
|         // Create event if not provided
 |  | ||||||
|         const auto pair = WritableEvent::CreateEventPair(kernel, "HLE Pause Event: " + reason); |  | ||||||
|         writable_event = pair.writable; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     Handle event_handle = InvalidHandle; |  | ||||||
|     { |  | ||||||
|         KScopedSchedulerLockAndSleep lock(kernel, event_handle, thread.get(), timeout); |  | ||||||
|         thread->SetHLECallback( |  | ||||||
|             [context = *this, callback](std::shared_ptr<Thread> thread) mutable -> bool { |  | ||||||
|                 ThreadWakeupReason reason = thread->GetSignalingResult() == RESULT_TIMEOUT |  | ||||||
|                                                 ? ThreadWakeupReason::Timeout |  | ||||||
|                                                 : ThreadWakeupReason::Signal; |  | ||||||
|                 callback(thread, context, reason); |  | ||||||
|                 context.WriteToOutgoingCommandBuffer(*thread); |  | ||||||
|                 return true; |  | ||||||
|             }); |  | ||||||
|         const auto readable_event{writable_event->GetReadableEvent()}; |  | ||||||
|         writable_event->Clear(); |  | ||||||
|         thread->SetHLESyncObject(readable_event.get()); |  | ||||||
|         thread->SetStatus(ThreadStatus::WaitHLEEvent); |  | ||||||
|         thread->SetSynchronizationResults(nullptr, RESULT_TIMEOUT); |  | ||||||
|         readable_event->AddWaitingThread(thread); |  | ||||||
|     } |  | ||||||
|     thread->SetHLETimeEvent(event_handle); |  | ||||||
| 
 |  | ||||||
|     is_thread_waiting = true; |  | ||||||
| 
 |  | ||||||
|     return writable_event; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| HLERequestContext::HLERequestContext(KernelCore& kernel, Core::Memory::Memory& memory, | HLERequestContext::HLERequestContext(KernelCore& kernel, Core::Memory::Memory& memory, | ||||||
|                                      std::shared_ptr<ServerSession> server_session, |                                      std::shared_ptr<ServerSession> server_session, | ||||||
|                                      std::shared_ptr<Thread> thread) |                                      std::shared_ptr<Thread> thread) | ||||||
|  | |||||||
| @ -129,23 +129,6 @@ public: | |||||||
|     using WakeupCallback = std::function<void( |     using WakeupCallback = std::function<void( | ||||||
|         std::shared_ptr<Thread> thread, HLERequestContext& context, ThreadWakeupReason reason)>; |         std::shared_ptr<Thread> thread, HLERequestContext& context, ThreadWakeupReason reason)>; | ||||||
| 
 | 
 | ||||||
|     /**
 |  | ||||||
|      * Puts the specified guest thread to sleep until the returned event is signaled or until the |  | ||||||
|      * specified timeout expires. |  | ||||||
|      * @param reason Reason for pausing the thread, to be used for debugging purposes. |  | ||||||
|      * @param timeout Timeout in nanoseconds after which the thread will be awoken and the callback |  | ||||||
|      * invoked with a Timeout reason. |  | ||||||
|      * @param callback Callback to be invoked when the thread is resumed. This callback must write |  | ||||||
|      * the entire command response once again, regardless of the state of it before this function |  | ||||||
|      * was called. |  | ||||||
|      * @param writable_event Event to use to wake up the thread. If unspecified, an event will be |  | ||||||
|      * created. |  | ||||||
|      * @returns Event that when signaled will resume the thread and call the callback function. |  | ||||||
|      */ |  | ||||||
|     std::shared_ptr<WritableEvent> SleepClientThread( |  | ||||||
|         const std::string& reason, u64 timeout, WakeupCallback&& callback, |  | ||||||
|         std::shared_ptr<WritableEvent> writable_event = nullptr); |  | ||||||
| 
 |  | ||||||
|     /// Populates this context with data from the requesting process/thread.
 |     /// Populates this context with data from the requesting process/thread.
 | ||||||
|     ResultCode PopulateFromIncomingCommandBuffer(const HandleTable& handle_table, |     ResultCode PopulateFromIncomingCommandBuffer(const HandleTable& handle_table, | ||||||
|                                                  u32_le* src_cmdbuf); |                                                  u32_le* src_cmdbuf); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei