| 
					
				 | 
			
			
				@@ -477,6 +477,17 @@ static int run_some_expired_timers(grpc_exec_ctx *exec_ctx, gpr_atm now, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              g_shard_queue[0]->min_deadline); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     gpr_mu_unlock(&g_shared_mutables.mu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     gpr_spinlock_unlock(&g_shared_mutables.checker_mu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else if (next != NULL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /* TODO(ctiller): this forces calling code to do an short poll, and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       then retry the timer check (because this time through the timer list was 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       contended). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       We could reduce the cost here dramatically by keeping a count of how 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       many currently active pollers got through the uncontended case above 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       successfully, and waking up other pollers IFF that count drops to zero. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       Once that count is in place, this entire else branch could disappear. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    *next = GPR_MIN(*next, now + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GRPC_ERROR_UNREF(error); 
			 |