Просмотр исходного кода

fix concurrent map writes (#2079)

Co-authored-by: wero <wero@werodeMacBook-Pro.local>
givemeafish 2 лет назад
Родитель
Сommit
6a4885ba64
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      core/discov/internal/registry.go

+ 2 - 0
core/discov/internal/registry.go

@@ -191,9 +191,11 @@ func (c *cluster) handleWatchEvents(key string, events []*clientv3.Event) {
 				})
 			}
 		case clientv3.EventTypeDelete:
+			c.lock.Lock()
 			if vals, ok := c.values[key]; ok {
 				delete(vals, string(ev.Kv.Key))
 			}
+			c.lock.Unlock()
 			for _, l := range listeners {
 				l.OnDelete(KV{
 					Key: string(ev.Kv.Key),