From 5ba44977b8ec09ba45ce16db7a9fe336dfc068f5 Mon Sep 17 00:00:00 2001 From: HAOYUatHZ Date: Tue, 27 Aug 2019 16:23:25 +0800 Subject: [PATCH] rollback upsert --- toolbar/precog/monitor/discover.go | 8 +++++--- toolbar/precog/monitor/monitor.go | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/toolbar/precog/monitor/discover.go b/toolbar/precog/monitor/discover.go index 88d601bf..1ec602db 100644 --- a/toolbar/precog/monitor/discover.go +++ b/toolbar/precog/monitor/discover.go @@ -19,12 +19,14 @@ func (m *monitor) discoveryRoutine( /*discvWg *sync.WaitGroup*/ ) { for range ticker.C { nodes := make([]*dht.Node, nodesToDiscv) n := m.sw.GetDiscv().ReadRandomNodes(nodes) - m.collectDiscoveredNodes(nodes[:n]) + for i := 0; i < n; i++ { + m.discvCh <- nodes[i] + } } } -func (m *monitor) collectDiscoveredNodes(nodes []*dht.Node) { - for _, node := range nodes { +func (m *monitor) collectDiscoveredNodes() { + for node := range m.discvCh { if n, ok := m.nodeMap[node.ID.String()]; ok && n.String() == node.String() { continue } diff --git a/toolbar/precog/monitor/monitor.go b/toolbar/precog/monitor/monitor.go index 8b8c74e9..fab14f1b 100644 --- a/toolbar/precog/monitor/monitor.go +++ b/toolbar/precog/monitor/monitor.go @@ -35,6 +35,7 @@ type monitor struct { privKey chainkd.XPrv chain *mock.Chain txPool *mock.Mempool + discvCh chan *dht.Node // nodeMap maps a node's public key to the node itself nodeMap map[string]*dht.Node dialCh chan struct{} @@ -76,6 +77,7 @@ func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor { privKey: privKey.(chainkd.XPrv), chain: chain, txPool: txPool, + discvCh: make(chan *dht.Node), nodeMap: make(map[string]*dht.Node), dialCh: make(chan struct{}, 1), checkStatusCh: make(chan struct{}, 1), -- 2.11.0