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 commit9ed5b263. Signed-off-by: Damien Leone <dleone@nvidia.com> Reviewed-by: Keith Packard <keithp@keithp.com> (cherry picked from commitf33cb42643)
This commit is contained in:
		
							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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue