defer unlocking podSubscriber for Switchover

This commit is contained in:
Felix Kunde 2022-05-05 17:31:39 +02:00
parent 3641911786
commit edd5d0a13d
2 changed files with 4 additions and 2 deletions

View File

@ -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
} }

View File

@ -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)
} }