From 952ff24f0bc58280de86ae8c77bf710044f948a1 Mon Sep 17 00:00:00 2001 From: Alexandr Lurye Date: Sat, 4 Apr 2015 01:39:43 +0200 Subject: [PATCH] Do not log net.errClosing error when StreamWatcher is stopping. --- pkg/watch/iowatcher.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/watch/iowatcher.go b/pkg/watch/iowatcher.go index 35bf7608457..e00a6a806cf 100644 --- a/pkg/watch/iowatcher.go +++ b/pkg/watch/iowatcher.go @@ -76,6 +76,13 @@ func (sw *StreamWatcher) Stop() { } } +// stopping returns true if Stop() was called previously. +func (sw *StreamWatcher) stopping() bool { + sw.Lock() + defer sw.Unlock() + return sw.stopped +} + // receive reads result from the decoder in a loop and sends down the result channel. func (sw *StreamWatcher) receive() { defer close(sw.result) @@ -84,6 +91,10 @@ func (sw *StreamWatcher) receive() { for { action, obj, err := sw.source.Decode() if err != nil { + // Ignore expected error. + if sw.stopping() { + return + } switch err { case io.EOF: // watch closed normally