defer unlocking podSubscriber for Switchover
This commit is contained in:
		
							parent
							
								
									3641911786
								
							
						
					
					
						commit
						edd5d0a13d
					
				|  | @ -1033,11 +1033,12 @@ func (c *Cluster) processPodEvent(obj interface{}) error { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	c.podSubscribersMu.RLock() | 	c.podSubscribersMu.RLock() | ||||||
|  | 	defer c.podSubscribersMu.RUnlock() | ||||||
|  | 
 | ||||||
| 	subscriber, ok := c.podSubscribers[spec.NamespacedName(event.PodName)] | 	subscriber, ok := c.podSubscribers[spec.NamespacedName(event.PodName)] | ||||||
| 	if ok { | 	if ok { | ||||||
| 		subscriber <- event | 		subscriber <- event | ||||||
| 	} | 	} | ||||||
| 	c.podSubscribersMu.RUnlock() |  | ||||||
| 
 | 
 | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -149,13 +149,14 @@ func (c *Cluster) deletePod(podName spec.NamespacedName) error { | ||||||
| func (c *Cluster) unregisterPodSubscriber(podName spec.NamespacedName) { | func (c *Cluster) unregisterPodSubscriber(podName spec.NamespacedName) { | ||||||
| 	c.logger.Debugf("unsubscribing from pod %q events", podName) | 	c.logger.Debugf("unsubscribing from pod %q events", podName) | ||||||
| 	c.podSubscribersMu.Lock() | 	c.podSubscribersMu.Lock() | ||||||
|  | 	defer c.podSubscribersMu.Unlock() | ||||||
|  | 
 | ||||||
| 	ch, ok := c.podSubscribers[podName] | 	ch, ok := c.podSubscribers[podName] | ||||||
| 	if !ok { | 	if !ok { | ||||||
| 		panic("subscriber for pod '" + podName.String() + "' is not found") | 		panic("subscriber for pod '" + podName.String() + "' is not found") | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	delete(c.podSubscribers, podName) | 	delete(c.podSubscribers, podName) | ||||||
| 	c.podSubscribersMu.Unlock() |  | ||||||
| 	close(ch) | 	close(ch) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue