mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	Use RaceFreeFakeWatcher in federation controllers helper and ingress controller
This commit is contained in:
		@@ -37,11 +37,11 @@ import (
 | 
				
			|||||||
// A structure that distributes eventes to multiple watchers.
 | 
					// A structure that distributes eventes to multiple watchers.
 | 
				
			||||||
type WatcherDispatcher struct {
 | 
					type WatcherDispatcher struct {
 | 
				
			||||||
	sync.Mutex
 | 
						sync.Mutex
 | 
				
			||||||
	watchers    []*watch.FakeWatcher
 | 
						watchers    []*watch.RaceFreeFakeWatcher
 | 
				
			||||||
	eventsSoFar []*watch.Event
 | 
						eventsSoFar []*watch.Event
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (wd *WatcherDispatcher) register(watcher *watch.FakeWatcher) {
 | 
					func (wd *WatcherDispatcher) register(watcher *watch.RaceFreeFakeWatcher) {
 | 
				
			||||||
	wd.Lock()
 | 
						wd.Lock()
 | 
				
			||||||
	defer wd.Unlock()
 | 
						defer wd.Unlock()
 | 
				
			||||||
	wd.watchers = append(wd.watchers, watcher)
 | 
						wd.watchers = append(wd.watchers, watcher)
 | 
				
			||||||
@@ -50,6 +50,14 @@ func (wd *WatcherDispatcher) register(watcher *watch.FakeWatcher) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (wd *WatcherDispatcher) Stop() {
 | 
				
			||||||
 | 
						wd.Lock()
 | 
				
			||||||
 | 
						defer wd.Unlock()
 | 
				
			||||||
 | 
						for _, watcher := range wd.watchers {
 | 
				
			||||||
 | 
							watcher.Stop()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func copy(obj runtime.Object) runtime.Object {
 | 
					func copy(obj runtime.Object) runtime.Object {
 | 
				
			||||||
	objCopy, err := api.Scheme.DeepCopy(obj)
 | 
						objCopy, err := api.Scheme.DeepCopy(obj)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -126,12 +134,12 @@ func (wd *WatcherDispatcher) Action(action watch.EventType, obj runtime.Object)
 | 
				
			|||||||
// All subsequent requests for a watch on the client will result in returning this fake watcher.
 | 
					// All subsequent requests for a watch on the client will result in returning this fake watcher.
 | 
				
			||||||
func RegisterFakeWatch(resource string, client *core.Fake) *WatcherDispatcher {
 | 
					func RegisterFakeWatch(resource string, client *core.Fake) *WatcherDispatcher {
 | 
				
			||||||
	dispatcher := &WatcherDispatcher{
 | 
						dispatcher := &WatcherDispatcher{
 | 
				
			||||||
		watchers:    make([]*watch.FakeWatcher, 0),
 | 
							watchers:    make([]*watch.RaceFreeFakeWatcher, 0),
 | 
				
			||||||
		eventsSoFar: make([]*watch.Event, 0),
 | 
							eventsSoFar: make([]*watch.Event, 0),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	client.AddWatchReactor(resource, func(action core.Action) (bool, watch.Interface, error) {
 | 
						client.AddWatchReactor(resource, func(action core.Action) (bool, watch.Interface, error) {
 | 
				
			||||||
		watcher := watch.NewFakeWithChanSize(100)
 | 
							watcher := watch.NewRaceFreeFake()
 | 
				
			||||||
		dispatcher.register(watcher)
 | 
							dispatcher.register(watcher)
 | 
				
			||||||
		return true, watcher, nil
 | 
							return true, watcher, nil
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user