diff options
author | Zsolt Felfoldi <zsfelfoldi@gmail.com> | 2017-01-23 09:35:46 +0800 |
---|---|---|
committer | Zsolt Felfoldi <zsfelfoldi@gmail.com> | 2017-01-26 11:23:53 +0800 |
commit | 12379c697aa72f4ce08733638e6f7e5dcdf3f94f (patch) | |
tree | c3f44e91386e0eb8fcd64a7ebdf5cf9ef20991df | |
parent | f5348e17f8d487a7bd34ccef6dcb6dc376407f40 (diff) | |
download | go-tangerine-12379c697aa72f4ce08733638e6f7e5dcdf3f94f.tar.gz go-tangerine-12379c697aa72f4ce08733638e6f7e5dcdf3f94f.tar.zst go-tangerine-12379c697aa72f4ce08733638e6f7e5dcdf3f94f.zip |
les: remove delayed les server starting
-rw-r--r-- | eth/backend.go | 1 | ||||
-rw-r--r-- | eth/handler.go | 2 | ||||
-rw-r--r-- | eth/sync.go | 9 | ||||
-rw-r--r-- | les/server.go | 30 |
4 files changed, 5 insertions, 37 deletions
diff --git a/eth/backend.go b/eth/backend.go index e0233db36..af120cbad 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -105,7 +105,6 @@ type Config struct { type LesServer interface { Start(srvr *p2p.Server) - Synced() Stop() Protocols() []p2p.Protocol } diff --git a/eth/handler.go b/eth/handler.go index 63ba0821f..e03c89149 100644 --- a/eth/handler.go +++ b/eth/handler.go @@ -173,7 +173,7 @@ func NewProtocolManager(config *params.ChainConfig, fastSync bool, networkId int return blockchain.CurrentBlock().NumberU64() } inserter := func(blocks types.Blocks) (int, error) { - manager.setSynced() // Mark initial sync done on any fetcher import + atomic.StoreUint32(&manager.synced, 1) // Mark initial sync done on any fetcher import return manager.insertChain(blocks) } manager.fetcher = fetcher.New(blockchain.GetBlockByHash, validator, manager.BroadcastBlock, heighter, inserter, manager.removePeer) diff --git a/eth/sync.go b/eth/sync.go index 234534b4f..373cc2054 100644 --- a/eth/sync.go +++ b/eth/sync.go @@ -181,7 +181,7 @@ func (pm *ProtocolManager) synchronise(peer *peer) { if err := pm.downloader.Synchronise(peer.id, pHead, pTd, mode); err != nil { return } - pm.setSynced() // Mark initial sync done + atomic.StoreUint32(&pm.synced, 1) // Mark initial sync done // If fast sync was enabled, and we synced up, disable it if atomic.LoadUint32(&pm.fastSync) == 1 { @@ -192,10 +192,3 @@ func (pm *ProtocolManager) synchronise(peer *peer) { } } } - -// setSynced sets the synced flag and notifies the light server if present -func (pm *ProtocolManager) setSynced() { - if atomic.SwapUint32(&pm.synced, 1) == 0 && pm.lesServer != nil { - pm.lesServer.Synced() - } -} diff --git a/les/server.go b/les/server.go index e55616a44..c4c6fcab5 100644 --- a/les/server.go +++ b/les/server.go @@ -42,9 +42,7 @@ type LesServer struct { fcManager *flowcontrol.ClientManager // nil if our node is client only fcCostStats *requestCostStats defParams *flowcontrol.ServerParams - srvr *p2p.Server - synced, stopped bool - lock sync.Mutex + stopped bool } func NewLesServer(eth *eth.Ethereum, config *eth.Config) (*LesServer, error) { @@ -70,35 +68,13 @@ func (s *LesServer) Protocols() []p2p.Protocol { return s.protocolManager.SubProtocols } -// Start only starts the actual service if the ETH protocol has already been synced, -// otherwise it will be started by Synced() +// Start starts the LES server func (s *LesServer) Start(srvr *p2p.Server) { - s.lock.Lock() - defer s.lock.Unlock() - - s.srvr = srvr - if s.synced { - s.protocolManager.Start(s.srvr) - } -} - -// Synced notifies the server that the ETH protocol has been synced and LES service can be started -func (s *LesServer) Synced() { - s.lock.Lock() - defer s.lock.Unlock() - - s.synced = true - if s.srvr != nil && !s.stopped { - s.protocolManager.Start(s.srvr) - } + s.protocolManager.Start(srvr) } // Stop stops the LES service func (s *LesServer) Stop() { - s.lock.Lock() - defer s.lock.Unlock() - - s.stopped = true s.fcCostStats.store() s.fcManager.Stop() go func() { |