ethcore: fix detection of major import (#9552)
* sync: set state to idle after sync is completed * sync: refactor sync reset
This commit is contained in:
parent
4f278ba715
commit
dc14cce7a9
@ -507,8 +507,9 @@ impl ChainSync {
|
|||||||
self.peers.clear();
|
self.peers.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Reset sync. Clear all downloaded data but keep the queue
|
/// Reset sync. Clear all downloaded data but keep the queue.
|
||||||
fn reset(&mut self, io: &mut SyncIo) {
|
/// Set sync state to the given state or to the initial state if `None` is provided.
|
||||||
|
fn reset(&mut self, io: &mut SyncIo, state: Option<SyncState>) {
|
||||||
self.new_blocks.reset();
|
self.new_blocks.reset();
|
||||||
let chain_info = io.chain().chain_info();
|
let chain_info = io.chain().chain_info();
|
||||||
for (_, ref mut p) in &mut self.peers {
|
for (_, ref mut p) in &mut self.peers {
|
||||||
@ -520,7 +521,7 @@ impl ChainSync {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.state = ChainSync::get_init_state(self.warp_sync, io.chain());
|
self.state = state.unwrap_or_else(|| ChainSync::get_init_state(self.warp_sync, io.chain()));
|
||||||
// Reactivate peers only if some progress has been made
|
// Reactivate peers only if some progress has been made
|
||||||
// since the last sync round of if starting fresh.
|
// since the last sync round of if starting fresh.
|
||||||
self.active_peers = self.peers.keys().cloned().collect();
|
self.active_peers = self.peers.keys().cloned().collect();
|
||||||
@ -534,7 +535,7 @@ impl ChainSync {
|
|||||||
io.snapshot_service().abort_restore();
|
io.snapshot_service().abort_restore();
|
||||||
}
|
}
|
||||||
self.snapshot.clear();
|
self.snapshot.clear();
|
||||||
self.reset(io);
|
self.reset(io, None);
|
||||||
self.continue_sync(io);
|
self.continue_sync(io);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -699,7 +700,7 @@ impl ChainSync {
|
|||||||
/// Called after all blocks have been downloaded
|
/// Called after all blocks have been downloaded
|
||||||
fn complete_sync(&mut self, io: &mut SyncIo) {
|
fn complete_sync(&mut self, io: &mut SyncIo) {
|
||||||
trace!(target: "sync", "Sync complete");
|
trace!(target: "sync", "Sync complete");
|
||||||
self.reset(io);
|
self.reset(io, Some(SyncState::Idle));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Enter waiting state
|
/// Enter waiting state
|
||||||
|
Loading…
Reference in New Issue
Block a user