X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fpersistence.rs;h=8e299ee202e48dbf0d700e4c278462e132b7338b;hb=3f77a1de51c39809b45b6065d1d533a2e7080a7f;hp=9dc537d835530f6c0bd63870785a11b21b4c031d;hpb=a9e129c3dcd0ce5b036fe6dd7e170450627be705;p=rapid-gossip-sync-server diff --git a/src/persistence.rs b/src/persistence.rs index 9dc537d..8e299ee 100644 --- a/src/persistence.rs +++ b/src/persistence.rs @@ -8,6 +8,7 @@ use lightning::log_info; use lightning::routing::gossip::NetworkGraph; use lightning::util::logger::Logger; use lightning::util::ser::Writeable; +use tokio::runtime::Runtime; use tokio::sync::{mpsc, Mutex, Semaphore}; use crate::config; @@ -19,6 +20,7 @@ const INSERT_PARALELLISM: usize = 16; pub(crate) struct GossipPersister where L::Target: Logger { gossip_persistence_receiver: mpsc::Receiver, network_graph: Arc>, + tokio_runtime: Runtime, logger: L } @@ -26,9 +28,11 @@ impl GossipPersister where L::Target: Logger { pub fn new(network_graph: Arc>, logger: L) -> (Self, mpsc::Sender) { let (gossip_persistence_sender, gossip_persistence_receiver) = mpsc::channel::(100); + let runtime = Runtime::new().unwrap(); (GossipPersister { gossip_persistence_receiver, network_graph, + tokio_runtime: runtime, logger }, gossip_persistence_sender) } @@ -127,7 +131,7 @@ impl GossipPersister where L::Target: Logger { let mut announcement_signed = Vec::new(); announcement.write(&mut announcement_signed).unwrap(); - let _task = tokio::spawn(async move { + let _task = self.tokio_runtime.spawn(async move { let client; { let mut connections_set = connections_cache_ref.lock().await; @@ -219,7 +223,7 @@ impl GossipPersister where L::Target: Logger { // this may not be used outside test cfg let _seen_timestamp = seen_override.unwrap_or(timestamp as u32) as f64; - let _task = tokio::spawn(async move { + let _task = self.tokio_runtime.spawn(async move { let client; { let mut connections_set = connections_cache_ref.lock().await;