From 1eb586db7d0e9ac0d3f32d56bee35d57c722cff6 Mon Sep 17 00:00:00 2001 From: Julius Volz Date: Wed, 17 Apr 2013 14:42:15 +0200 Subject: [PATCH] Fix rule evaluation closure. --- rules/manager.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rules/manager.go b/rules/manager.go index 80022d07ae..2bd7c799c8 100644 --- a/rules/manager.go +++ b/rules/manager.go @@ -17,6 +17,7 @@ import ( "github.com/prometheus/prometheus/config" "github.com/prometheus/prometheus/rules/ast" "log" + "sync" "time" ) @@ -66,15 +67,19 @@ func (m *ruleManager) Stop() { func (m *ruleManager) runIteration(results chan *Result) { now := time.Now() + wg := sync.WaitGroup{} for _, rule := range m.rules { - go func() { + wg.Add(1) + go func(rule *Rule) { vector, err := rule.Eval(&now) m.results <- &Result{ Samples: vector, Err: err, } - }() + wg.Done() + }(rule) } + wg.Wait() } func (m *ruleManager) AddRulesFromConfig(config *config.Config) error {