X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=dnsseed-rust;a=blobdiff_plain;f=src%2Fdatastore.rs;h=1a3d7c94024ce75dd1cd78dabe13dc29eadcf942;hp=827726e9aae9dae21a1d8c71840c7e8dc2325881;hb=af2cd26873a4ca90fd5c44a3b8d19ac6cfbbaf34;hpb=fa44fd6c5494d91c3aea82ac33e4af7c08bd87bc diff --git a/src/datastore.rs b/src/datastore.rs index 827726e..1a3d7c9 100644 --- a/src/datastore.rs +++ b/src/datastore.rs @@ -496,7 +496,7 @@ impl Store { let mut nodes = self.nodes.write().unwrap(); for (idx, state_nodes) in nodes.state_next_scan.iter_mut().enumerate() { let cmp_time = cur_time - Duration::from_secs(self.get_u64(U64Setting::RescanInterval(AddressState::from_num(idx as u8).unwrap()))); - let split_point = cmp::min(cmp::min(results - res.len(), results - (per_bucket_results * (AddressState::get_count() as usize - idx))), + let split_point = cmp::min(cmp::min(results - res.len(), (per_bucket_results * (idx + 1)) - res.len()), state_nodes.binary_search_by(|a| a.0.cmp(&cmp_time)).unwrap_or_else(|idx| idx)); let mut new_nodes = state_nodes.split_off(split_point); mem::swap(&mut new_nodes, state_nodes);