From 8be634c02d6ffe425ae823297f1631196c50bbeb Mon Sep 17 00:00:00 2001 From: HAOYUatHZ Date: Tue, 27 Aug 2019 15:45:43 +0800 Subject: [PATCH] add locks for conn --- toolbar/precog/monitor/connection.go | 1 + toolbar/precog/monitor/discover.go | 5 ++++- toolbar/precog/monitor/monitor.go | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/toolbar/precog/monitor/connection.go b/toolbar/precog/monitor/connection.go index ef9cd0e7..ed6df818 100644 --- a/toolbar/precog/monitor/connection.go +++ b/toolbar/precog/monitor/connection.go @@ -13,6 +13,7 @@ func (m *monitor) connectNodesRoutine() { ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds) * time.Second) for ; true; <-ticker.C { <-m.dialCh + m.Lock() if err := m.dialNodes(); err != nil { log.Error(err) } diff --git a/toolbar/precog/monitor/discover.go b/toolbar/precog/monitor/discover.go index 002cba07..72c1e001 100644 --- a/toolbar/precog/monitor/discover.go +++ b/toolbar/precog/monitor/discover.go @@ -24,8 +24,9 @@ func (m *monitor) discoveryRoutine(discvWg *sync.WaitGroup) { m.Lock() for i := 0; i < n; i++ { m.discvCh <- nodes[i] - // wg.Add(1) + discvWg.Add(1) } + discvWg.Wait() m.Unlock() } } @@ -48,5 +49,7 @@ func (m *monitor) collectDiscoveredNodes(discvWg *sync.WaitGroup) { } else { log.Error(err) } + + discvWg.Done() } } diff --git a/toolbar/precog/monitor/monitor.go b/toolbar/precog/monitor/monitor.go index 3dc14a38..96e40dbf 100644 --- a/toolbar/precog/monitor/monitor.go +++ b/toolbar/precog/monitor/monitor.go @@ -216,6 +216,7 @@ func (m *monitor) checkStatusRoutine() { peers.RemovePeer(p.ID()) } log.Info("Disonnect all peers.") + m.Unlock() m.dialCh <- struct{}{} } } -- 2.11.0