Skip to content

Commit f119ed2

Browse files
committed
Make passing scorer optional
1 parent cd201ea commit f119ed2

File tree

1 file changed

+16
-12
lines changed
  • lightning-background-processor/src

1 file changed

+16
-12
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ impl BackgroundProcessor {
194194
S: 'static + Deref + Send + Sync,
195195
>(
196196
persister: PS, event_handler: EH, chain_monitor: M, channel_manager: CM,
197-
net_graph_msg_handler: Option<NG>, peer_manager: PM, logger: L, scorer: S
197+
net_graph_msg_handler: Option<NG>, peer_manager: PM, logger: L, scorer: Option<S>
198198
) -> Self
199199
where
200200
CA::Target: 'static + chain::Access,
@@ -283,11 +283,13 @@ impl BackgroundProcessor {
283283
if let Err(e) = persister.persist_graph(handler.network_graph()) {
284284
log_error!(logger, "Error: Failed to persist network graph, check your disk and permissions {}", e)
285285
}
286+
last_prune_call = Instant::now();
287+
have_pruned = true;
288+
}
289+
if let Some(ref scorer) = scorer {
286290
if let Err(e) = persister.persist_scorer(&scorer) {
287291
log_error!(logger, "Error: Failed to persist scorer, check your disk and permissions {}", e)
288292
}
289-
last_prune_call = Instant::now();
290-
have_pruned = true;
291293
}
292294
}
293295
}
@@ -303,7 +305,9 @@ impl BackgroundProcessor {
303305
}
304306

305307
// Persist Scorer on exit
306-
persister.persist_scorer(&scorer)?;
308+
if let Some(ref scorer) = scorer {
309+
persister.persist_scorer(&scorer)?;
310+
}
307311

308312
Ok(())
309313
});
@@ -607,7 +611,7 @@ mod tests {
607611
let persister = Persister::new(data_dir);
608612
let event_handler = |_: &_| {};
609613
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
610-
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer.clone());
614+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer.clone()));
611615

612616
macro_rules! check_persisted_data {
613617
($node: expr, $filepath: expr) => {
@@ -702,7 +706,7 @@ mod tests {
702706
let persister = Persister::new(data_dir);
703707
let event_handler = |_: &_| {};
704708
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
705-
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer);
709+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer));
706710
loop {
707711
let log_entries = nodes[0].logger.lines.lock().unwrap();
708712
let desired_log = "Calling ChannelManager's timer_tick_occurred".to_string();
@@ -726,7 +730,7 @@ mod tests {
726730
let persister = Persister::new(data_dir).with_manager_error(std::io::ErrorKind::Other, "test");
727731
let event_handler = |_: &_| {};
728732
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
729-
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer);
733+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer));
730734
match bg_processor.join() {
731735
Ok(_) => panic!("Expected error persisting manager"),
732736
Err(e) => {
@@ -744,7 +748,7 @@ mod tests {
744748
let persister = Persister::new(data_dir).with_graph_error(std::io::ErrorKind::Other, "test");
745749
let event_handler = |_: &_| {};
746750
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
747-
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer);
751+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer));
748752

749753
match bg_processor.stop() {
750754
Ok(_) => panic!("Expected error persisting network graph"),
@@ -763,7 +767,7 @@ mod tests {
763767
let persister = Persister::new(data_dir).with_scorer_error(std::io::ErrorKind::Other, "test");
764768
let event_handler = |_: &_| {};
765769
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
766-
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer);
770+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer));
767771

768772
match bg_processor.stop() {
769773
Ok(_) => panic!("Expected error persisting scorer"),
@@ -787,7 +791,7 @@ mod tests {
787791
sender.send(handle_funding_generation_ready!(event, channel_value)).unwrap();
788792
};
789793
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
790-
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer);
794+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer));
791795

792796
// Open a channel and check that the FundingGenerationReady event was handled.
793797
begin_open_channel!(nodes[0], nodes[1], channel_value);
@@ -812,7 +816,7 @@ mod tests {
812816
let (sender, receiver) = std::sync::mpsc::sync_channel(1);
813817
let event_handler = move |event: &Event| sender.send(event.clone()).unwrap();
814818
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
815-
let bg_processor = BackgroundProcessor::start(Persister::new(data_dir), event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer);
819+
let bg_processor = BackgroundProcessor::start(Persister::new(data_dir), event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer));
816820

817821
// Force close the channel and check that the SpendableOutputs event was handled.
818822
nodes[0].node.force_close_channel(&nodes[0].node.list_channels()[0].channel_id).unwrap();
@@ -844,7 +848,7 @@ mod tests {
844848
let invoice_payer = Arc::new(InvoicePayer::new(Arc::clone(&nodes[0].node), router, scorer, Arc::clone(&nodes[0].logger), |_: &_| {}, RetryAttempts(2)));
845849
let event_handler = Arc::clone(&invoice_payer);
846850
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
847-
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), scorer);
851+
let bg_processor = BackgroundProcessor::start(persister, event_handler, nodes[0].chain_monitor.clone(), nodes[0].node.clone(), nodes[0].net_graph_msg_handler.clone(), nodes[0].peer_manager.clone(), nodes[0].logger.clone(), Some(scorer));
848852
assert!(bg_processor.stop().is_ok());
849853
}
850854
}

0 commit comments

Comments
 (0)