From b868f4b1b1b8dd67b3cedab2e2a6008411b88b87 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Thu, 19 Nov 2015 22:44:44 -0800 Subject: [PATCH] v3rpc: report eventReceived correctly --- etcdserver/api/v3rpc/watch.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/etcdserver/api/v3rpc/watch.go b/etcdserver/api/v3rpc/watch.go index f332215f3..6e1164895 100644 --- a/etcdserver/api/v3rpc/watch.go +++ b/etcdserver/api/v3rpc/watch.go @@ -66,10 +66,19 @@ func sendLoop(stream pb.Watch_WatchServer, watcher storage.Watcher, closec chan return } err := stream.Send(&pb.WatchResponse{Event: &e}) + storage.ReportEventReceived() if err != nil { return } case <-closec: + // drain the chan to clean up pending events + for { + _, ok := <-watcher.Chan() + if !ok { + return + } + storage.ReportEventReceived() + } return } }