projects
/
dnsseed-rust
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4dcc9a0
)
Split DNS results writing and data store writing
author
Matt Corallo
<git@bluematt.me>
Thu, 22 Aug 2019 21:41:55 +0000
(17:41 -0400)
committer
Matt Corallo
<git@bluematt.me>
Thu, 22 Aug 2019 21:41:55 +0000
(17:41 -0400)
src/datastore.rs
patch
|
blob
|
history
src/main.rs
patch
|
blob
|
history
diff --git
a/src/datastore.rs
b/src/datastore.rs
index 05d8a1e9ba0ef54fc0fa539899afda08ddf40a4e..30d2c8e8b21431cf917c0ec6d1436c7016f3a07c 100644
(file)
--- a/
src/datastore.rs
+++ b/
src/datastore.rs
@@
-434,8
+434,12
@@
impl Store {
tokio::fs::rename(nodes_file.clone() + ".tmp", nodes_file)
});
tokio::fs::rename(nodes_file.clone() + ".tmp", nodes_file)
});
+ settings_future.join(nodes_future).then(|_| { future::ok(()) })
+ }
+
+ pub fn write_dns(&'static self) -> impl Future<Item=(), Error=()> {
let dns_file = self.store.clone() + "/nodes.dump";
let dns_file = self.store.clone() + "/nodes.dump";
-
let dns_future =
File::create(dns_file.clone() + ".tmp").and_then(move |f| {
+ File::create(dns_file.clone() + ".tmp").and_then(move |f| {
let mut dns_buff = String::new();
{
let mut rng = thread_rng();
let mut dns_buff = String::new();
{
let mut rng = thread_rng();
@@
-505,9
+509,7
@@
impl Store {
f.poll_sync_all()
}).and_then(|_| {
tokio::fs::rename(dns_file.clone() + ".tmp", dns_file)
f.poll_sync_all()
}).and_then(|_| {
tokio::fs::rename(dns_file.clone() + ".tmp", dns_file)
- });
-
- settings_future.join3(nodes_future, dns_future).then(|_| { future::ok(()) })
+ }).then(|_| { future::ok(()) })
}
pub fn get_next_scan_nodes(&self) -> Vec<SocketAddr> {
}
pub fn get_next_scan_nodes(&self) -> Vec<SocketAddr> {
diff --git
a/src/main.rs
b/src/main.rs
index 4bf93510c5e3aaa41ba8fb38e8c4356965f3af73..f72ba343a1972cbc1ddb03e06e2584ee7e25ded1 100644
(file)
--- a/
src/main.rs
+++ b/
src/main.rs
@@
-258,7
+258,8
@@
fn poll_dnsseeds() {
printer.add_line(format!("Added {} new addresses from other DNS seeds", new_addrs), false);
Delay::new(Instant::now() + Duration::from_secs(60)).then(|_| {
let store = unsafe { DATA_STORE.as_ref().unwrap() };
printer.add_line(format!("Added {} new addresses from other DNS seeds", new_addrs), false);
Delay::new(Instant::now() + Duration::from_secs(60)).then(|_| {
let store = unsafe { DATA_STORE.as_ref().unwrap() };
- store.save_data().then(|_| {
+ let dns_future = store.write_dns();
+ store.save_data().join(dns_future).then(|_| {
if !START_SHUTDOWN.load(Ordering::Relaxed) {
poll_dnsseeds();
}
if !START_SHUTDOWN.load(Ordering::Relaxed) {
poll_dnsseeds();
}