Procházet zdrojové kódy

Merge pull request #10974 from lzhfromustc/watchers

proxy: Add critical section to protect wps.watchers and wps.nextWatcherID
Xiang Li před 6 roky
rodič
revize
bbb379fa4a
1 změnil soubory, kde provedl 2 přidání a 0 odebrání
  1. 2 0
      proxy/grpcproxy/watch.go

+ 2 - 0
proxy/grpcproxy/watch.go

@@ -241,6 +241,7 @@ func (wps *watchProxyStream) recvLoop() error {
 				continue
 				continue
 			}
 			}
 
 
+			wps.mu.Lock()
 			w := &watcher{
 			w := &watcher{
 				wr:  watchRange{string(cr.Key), string(cr.RangeEnd)},
 				wr:  watchRange{string(cr.Key), string(cr.RangeEnd)},
 				id:  wps.nextWatcherID,
 				id:  wps.nextWatcherID,
@@ -259,6 +260,7 @@ func (wps *watchProxyStream) recvLoop() error {
 			w.nextrev = cr.StartRevision
 			w.nextrev = cr.StartRevision
 			wps.watchers[w.id] = w
 			wps.watchers[w.id] = w
 			wps.ranges.add(w)
 			wps.ranges.add(w)
+			wps.mu.Unlock()
 		case *pb.WatchRequest_CancelRequest:
 		case *pb.WatchRequest_CancelRequest:
 			wps.delete(uv.CancelRequest.WatchId)
 			wps.delete(uv.CancelRequest.WatchId)
 		default:
 		default: