|  | @@ -26,6 +26,13 @@ func (t *ActivityTimer) SetTimeout(timeout time.Duration) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (t *ActivityTimer) run(ctx context.Context, cancel context.CancelFunc) {
 | 
	
		
			
				|  |  | +	defer cancel()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	timeout := <-t.timeout
 | 
	
		
			
				|  |  | +	if timeout == 0 {
 | 
	
		
			
				|  |  | +		return
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	ticker := time.NewTicker(<-t.timeout)
 | 
	
		
			
				|  |  |  	defer func() {
 | 
	
		
			
				|  |  |  		ticker.Stop()
 | 
	
	
		
			
				|  | @@ -38,7 +45,6 @@ func (t *ActivityTimer) run(ctx context.Context, cancel context.CancelFunc) {
 | 
	
		
			
				|  |  |  			return
 | 
	
		
			
				|  |  |  		case timeout := <-t.timeout:
 | 
	
		
			
				|  |  |  			if timeout == 0 {
 | 
	
		
			
				|  |  | -				cancel()
 | 
	
		
			
				|  |  |  				return
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -51,7 +57,6 @@ func (t *ActivityTimer) run(ctx context.Context, cancel context.CancelFunc) {
 | 
	
		
			
				|  |  |  		case <-t.updated:
 | 
	
		
			
				|  |  |  		// Updated keep waiting.
 | 
	
		
			
				|  |  |  		default:
 | 
	
		
			
				|  |  | -			cancel()
 | 
	
		
			
				|  |  |  			return
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 |