From f1782fed9093bd7bcfec7d00d0a44eaa5e4b447c Mon Sep 17 00:00:00 2001 From: Andrea Luzzardi Date: Wed, 7 Oct 2015 17:27:41 -0700 Subject: [PATCH] engine cleanup: Don't mess with the global random. Signed-off-by: Andrea Luzzardi --- cluster/engine.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cluster/engine.go b/cluster/engine.go index 996758e0de..b50045c3d8 100644 --- a/cluster/engine.go +++ b/cluster/engine.go @@ -32,10 +32,6 @@ const ( minSupportedVersion = version.Version("1.6.0") ) -func init() { - rand.Seed(int64(time.Now().Nanosecond())) -} - // NewEngine is exported func NewEngine(addr string, overcommitRatio float64) *Engine { e := &Engine{ @@ -43,6 +39,7 @@ func NewEngine(addr string, overcommitRatio float64) *Engine { client: nopclient.NewNopClient(), Labels: make(map[string]string), stopCh: make(chan struct{}), + r: rand.New(rand.NewSource(time.Now().UTC().UnixNano())), containers: make(map[string]*Container), volumes: make(map[string]*Volume), healthy: true, @@ -64,6 +61,7 @@ type Engine struct { Labels map[string]string stopCh chan struct{} + r *rand.Rand containers map[string]*Container images []*Image volumes map[string]*Volume @@ -348,7 +346,7 @@ func (e *Engine) refreshLoop() { for { var err error - refreshPeriod := time.Duration(rand.Intn(stateRefreshMaxRange-stateRefreshMinRange) + stateRefreshMinRange) + refreshPeriod := time.Duration(e.r.Intn(stateRefreshMaxRange-stateRefreshMinRange) + stateRefreshMinRange) // Sleep stateRefreshPeriod or quit if we get stopped. select {