mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Adressed review comments
This commit is contained in:
		
							parent
							
								
									7efe60ed23
								
							
						
					
					
						commit
						ad8b9c0429
					
				
					 3 changed files with 11 additions and 12 deletions
				
			
		|  | @ -81,7 +81,8 @@ private: | |||
|                     backend->Write(e); | ||||
|                 } | ||||
|             }; | ||||
|             while (message_queue.PopWait(entry)) { | ||||
|             while (true) { | ||||
|                 entry = message_queue.PopWait(); | ||||
|                 if (entry.final_entry) { | ||||
|                     break; | ||||
|                 } | ||||
|  |  | |||
|  | @ -42,7 +42,7 @@ public: | |||
|     template <typename Arg> | ||||
|     void Push(Arg&& t) { | ||||
|         // create the element, add it to the queue
 | ||||
|         write_ptr->current = std::move(t); | ||||
|         write_ptr->current = std::forward<Arg>(t); | ||||
|         // set the next pointer to a new element ptr
 | ||||
|         // then advance the write pointer
 | ||||
|         ElementPtr* new_ptr = new ElementPtr(); | ||||
|  | @ -68,11 +68,10 @@ public: | |||
|         if (Empty()) | ||||
|             return false; | ||||
| 
 | ||||
|         ElementPtr* tmpptr = read_ptr; | ||||
| 
 | ||||
|         if (NeedSize) | ||||
|             size--; | ||||
| 
 | ||||
|         ElementPtr* tmpptr = read_ptr; | ||||
|         read_ptr = tmpptr->next.load(std::memory_order_acquire); | ||||
|         t = std::move(tmpptr->current); | ||||
|         tmpptr->next.store(nullptr); | ||||
|  | @ -80,12 +79,14 @@ public: | |||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     bool PopWait(T& t) { | ||||
|     T PopWait() { | ||||
|         if (Empty()) { | ||||
|             std::unique_lock<std::mutex> lock(cv_mutex); | ||||
|             cv.wait(lock, [this]() { return !Empty(); }); | ||||
|         } | ||||
|         return Pop(t); | ||||
|         T t; | ||||
|         Pop(t); | ||||
|         return t; | ||||
|     } | ||||
| 
 | ||||
|     // not thread-safe
 | ||||
|  | @ -151,8 +152,8 @@ public: | |||
|         return spsc_queue.Pop(t); | ||||
|     } | ||||
| 
 | ||||
|     bool PopWait(T& t) { | ||||
|         return spsc_queue.PopWait(t); | ||||
|     T PopWait() { | ||||
|         return spsc_queue.PopWait(); | ||||
|     } | ||||
| 
 | ||||
|     // not thread-safe
 | ||||
|  |  | |||
|  | @ -106,10 +106,7 @@ void RPCServer::HandleRequestsLoop() { | |||
| 
 | ||||
|     LOG_INFO(RPC_Server, "Request handler started."); | ||||
| 
 | ||||
|     while (request_queue.PopWait(request_packet)) { | ||||
|         if (!request_packet) { | ||||
|             break; | ||||
|         } | ||||
|     while ((request_packet = request_queue.PopWait())) { | ||||
|         HandleSingleRequest(std::move(request_packet)); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue