mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Memory: don't lock hle mutex in memory read/write
The comment already invalidates itself: neither MMIO nor rasterizer cache belongsHLE kernel state. This mutex has a too large scope if MMIO or cache is included, which is prone to dead lock when multiple thread acquires these resource at the same time. If necessary, each MMIO component or rasterizer should have their own lock.
This commit is contained in:
		
							parent
							
								
									bad2e084e3
								
							
						
					
					
						commit
						7074dab2da
					
				
					 1 changed files with 0 additions and 6 deletions
				
			
		|  | @ -176,9 +176,6 @@ T MemorySystem::Read(const VAddr vaddr) { | |||
|         return value; | ||||
|     } | ||||
| 
 | ||||
|     // The memory access might do an MMIO or cached access, so we have to lock the HLE kernel state
 | ||||
|     std::lock_guard<std::recursive_mutex> lock(HLE::g_hle_lock); | ||||
| 
 | ||||
|     PageType type = impl->current_page_table->attributes[vaddr >> PAGE_BITS]; | ||||
|     switch (type) { | ||||
|     case PageType::Unmapped: | ||||
|  | @ -213,9 +210,6 @@ void MemorySystem::Write(const VAddr vaddr, const T data) { | |||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     // The memory access might do an MMIO or cached access, so we have to lock the HLE kernel state
 | ||||
|     std::lock_guard<std::recursive_mutex> lock(HLE::g_hle_lock); | ||||
| 
 | ||||
|     PageType type = impl->current_page_table->attributes[vaddr >> PAGE_BITS]; | ||||
|     switch (type) { | ||||
|     case PageType::Unmapped: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue