diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go index 1bc81406cb..d817b223cc 100644 --- a/eth/downloader/downloader.go +++ b/eth/downloader/downloader.go @@ -145,8 +145,6 @@ func (d *Downloader) Synchronise(id string, hash common.Hash) error { glog.V(logger.Info).Infoln("Block synchronisation started") } - d.mux.Post(StartEvent{}) - // Create cancel channel for aborting mid-flight d.cancelLock.Lock() d.cancelCh = make(chan struct{}) @@ -166,6 +164,7 @@ func (d *Downloader) Synchronise(id string, hash common.Hash) error { if p == nil { return errUnknownPeer } + return d.syncWithPeer(p, hash) } @@ -181,6 +180,7 @@ func (d *Downloader) Has(hash common.Hash) bool { // syncWithPeer starts a block synchronization based on the hash chain from the // specified peer and head hash. func (d *Downloader) syncWithPeer(p *peer, hash common.Hash) (err error) { + d.mux.Post(StartEvent{}) defer func() { // reset on error if err != nil { diff --git a/miner/agent.go b/miner/agent.go index 024e8aec0a..da2a2008df 100644 --- a/miner/agent.go +++ b/miner/agent.go @@ -49,6 +49,7 @@ func (self *CpuAgent) Start() { self.quit = make(chan struct{}) // creating current op ch makes sure we're not closing a nil ch + // later on self.quitCurrentOp = make(chan struct{}) self.workCh = make(chan *types.Block, 1)