os: Recompute whether any clients are ready after check_timers()
If a driver calls AttendClient() from within a timer callback we
need to re-compute the local 'are_ready' to prevent the attended
client from waiting until WaitForSomething() times out.
This is a fix similar to commit 9ed5b263.
Signed-off-by: Damien Leone <dleone@nvidia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit f33cb4264387ed14a586ba080885b4d21e4aa48b)
			
			
This commit is contained in:
		
				
					committed by
					
						
						Adam Jackson
					
				
			
			
				
	
			
			
			
						parent
						
							180ab06d45
						
					
				
				
					commit
					8c2f0f8cbd
				
			@@ -190,10 +190,11 @@ WaitForSomething(Bool are_ready)
 | 
			
		||||
        /* deal with any blocked jobs */
 | 
			
		||||
        if (workQueue) {
 | 
			
		||||
            ProcessWorkQueue();
 | 
			
		||||
            are_ready = clients_are_ready();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        timeout = check_timers();
 | 
			
		||||
        are_ready = clients_are_ready();
 | 
			
		||||
 | 
			
		||||
        if (are_ready)
 | 
			
		||||
            timeout = 0;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user