From b4a6819291eb88ede90dc14fe81f30c54d2ea6fa Mon Sep 17 00:00:00 2001 From: Jimmi Dyson Date: Wed, 14 Oct 2015 09:58:42 +0100 Subject: [PATCH] Switch to select on time.After & close channel for track usage --- container/docker/fsHandler.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/container/docker/fsHandler.go b/container/docker/fsHandler.go index b55634a7..c7ac16ad 100644 --- a/container/docker/fsHandler.go +++ b/container/docker/fsHandler.go @@ -78,19 +78,19 @@ func (fh *realFsHandler) update() error { func (fh *realFsHandler) trackUsage() { for { - start := time.Now() - if _, ok := <-fh.stopChan; !ok { + select { + case <-fh.stopChan: return + case <-time.After(fh.period): + start := time.Now() + if err := fh.update(); err != nil { + glog.V(2).Infof("failed to collect filesystem stats - %v", err) + } + duration := time.Since(start) + if duration > longDu { + glog.V(3).Infof("`du` on following dirs took %v: %v", duration, fh.storageDirs) + } } - if err := fh.update(); err != nil { - glog.V(2).Infof("failed to collect filesystem stats - %v", err) - } - duration := time.Since(start) - if duration > longDu { - glog.V(3).Infof("`du` on following dirs took %v: %v", duration, fh.storageDirs) - } - next := start.Add(fh.period) - time.Sleep(next.Sub(time.Now())) } }