mirror of
				https://github.com/ryujinx-mirror/ryujinx.git
				synced 2025-11-04 03:29:01 -06:00 
			
		
		
		
	Fix deadlock in background translation thread shutdown (#7239)
TryDequeue checks for _disposed before taking the lock. If another thread calls Dispose before it takes the lock, it won't get woken up by the PulseAll call, and will deadlock in Monitor.Wait. Double-checking _disposed with the lock taken should avoid this.
This commit is contained in:
		@@ -80,7 +80,10 @@ namespace ARMeilleure.Translation
 | 
			
		||||
                        return true;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    Monitor.Wait(Sync);
 | 
			
		||||
                    if (!_disposed)
 | 
			
		||||
                    {
 | 
			
		||||
                        Monitor.Wait(Sync);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user