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