apiserver/watchcache: doc watch event fan-out to blocked watchers better
This commit is contained in:
		@@ -934,8 +934,11 @@ func (c *Cacher) dispatchEvent(event *watchCacheEvent) {
 | 
				
			|||||||
			timeout := c.dispatchTimeoutBudget.takeAvailable()
 | 
								timeout := c.dispatchTimeoutBudget.takeAvailable()
 | 
				
			||||||
			c.timer.Reset(timeout)
 | 
								c.timer.Reset(timeout)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Make sure every watcher will try to send event without blocking first,
 | 
								// Send event to all blocked watchers. As long as timer is running,
 | 
				
			||||||
			// even if the timer has already expired.
 | 
								// `add` will wait for the watcher to unblock. After timeout,
 | 
				
			||||||
 | 
								// `add` will not wait, but immediately close a still blocked watcher.
 | 
				
			||||||
 | 
								// Hence, every watcher gets the chance to unblock itself while timer
 | 
				
			||||||
 | 
								// is running, not only the first ones in the list.
 | 
				
			||||||
			timer := c.timer
 | 
								timer := c.timer
 | 
				
			||||||
			for _, watcher := range c.blockedWatchers {
 | 
								for _, watcher := range c.blockedWatchers {
 | 
				
			||||||
				if !watcher.add(event, timer) {
 | 
									if !watcher.add(event, timer) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user