Skip to content

Commit ec9d048

Browse files
committed
Make passing scorer optional
1 parent 6dfe057 commit ec9d048

File tree

1 file changed

+15
-11
lines changed
  • lightning-background-processor/src

1 file changed

+15
-11
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ impl BackgroundProcessor {
175175
S: 'static + Deref + Send + Sync,
176176
>(
177177
persister: PS, event_handler: EH, chain_monitor: M, channel_manager: CM,
178-
net_graph_msg_handler: Option<NG>, peer_manager: PM, logger: L, scorer: S
178+
net_graph_msg_handler: Option<NG>, peer_manager: PM, logger: L, scorer: Option<S>
179179
) -> Self
180180
where
181181
CA::Target: 'static + chain::Access,
@@ -265,11 +265,13 @@ impl BackgroundProcessor {
265265
if let Err(e) = persister.persist_graph(handler.network_graph()) {
266266
log_error!(logger, "Error: Failed to persist network graph, check your disk and permissions {}", e)
267267
}
268+
last_prune_call = Instant::now();
269+
have_pruned = true;
270+
}
271+
if let Some(ref scorer) = scorer {
268272
if let Err(e) = persister.persist_scorer(&scorer) {
269273
log_error!(logger, "Error: Failed to persist scorer, check your disk and permissions {}", e)
270274
}
271-
last_prune_call = Instant::now();
272-
have_pruned = true;
273275
}
274276
}
275277
}
@@ -285,7 +287,9 @@ impl BackgroundProcessor {
285287
}
286288

287289
// Persist Scorer on exit
288-
persister.persist_scorer(&scorer)?;
290+
if let Some(ref scorer) = scorer {
291+
persister.persist_scorer(&scorer)?;
292+
}
289293

290294
Ok(())
291295
});
@@ -580,7 +584,7 @@ mod tests {
580584
let persister = Arc::new(Persister::new(data_dir));
581585
let event_handler = |_: &_| {};
582586
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
583-
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());
587+
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()));
584588

585589
macro_rules! check_persisted_data {
586590
($node: expr, $filepath: expr) => {
@@ -675,7 +679,7 @@ mod tests {
675679
let persister = Arc::new(Persister::new(data_dir));
676680
let event_handler = |_: &_| {};
677681
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
678-
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);
682+
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));
679683
loop {
680684
let log_entries = nodes[0].logger.lines.lock().unwrap();
681685
let desired_log = "Calling ChannelManager's timer_tick_occurred".to_string();
@@ -699,7 +703,7 @@ mod tests {
699703
let persister = Arc::new(Persister::new(data_dir).with_manager_error(std::io::ErrorKind::Other, "test"));
700704
let event_handler = |_: &_| {};
701705
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
702-
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);
706+
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));
703707
match bg_processor.join() {
704708
Ok(_) => panic!("Expected error persisting manager"),
705709
Err(e) => {
@@ -717,7 +721,7 @@ mod tests {
717721
let persister = Arc::new(Persister::new(data_dir).with_graph_error(std::io::ErrorKind::Other, "test"));
718722
let event_handler = |_: &_| {};
719723
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
720-
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);
724+
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));
721725

722726
match bg_processor.stop() {
723727
Ok(_) => panic!("Expected error persisting network graph"),
@@ -736,7 +740,7 @@ mod tests {
736740
let persister = Persister::new(data_dir).with_scorer_error(std::io::ErrorKind::Other, "test");
737741
let event_handler = |_: &_| {};
738742
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
739-
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);
743+
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));
740744

741745
match bg_processor.stop() {
742746
Ok(_) => panic!("Expected error persisting scorer"),
@@ -760,7 +764,7 @@ mod tests {
760764
sender.send(handle_funding_generation_ready!(event, channel_value)).unwrap();
761765
};
762766
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
763-
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);
767+
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));
764768

765769
// Open a channel and check that the FundingGenerationReady event was handled.
766770
begin_open_channel!(nodes[0], nodes[1], channel_value);
@@ -818,7 +822,7 @@ mod tests {
818822
let invoice_payer = Arc::new(InvoicePayer::new(Arc::clone(&nodes[0].node), router, scorer, Arc::clone(&nodes[0].logger), |_: &_| {}, RetryAttempts(2)));
819823
let event_handler = Arc::clone(&invoice_payer);
820824
let scorer = Arc::new(Mutex::new(test_utils::TestScorer::with_penalty(0)));
821-
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);
825+
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));
822826
assert!(bg_processor.stop().is_ok());
823827
}
824828
}

0 commit comments

Comments
 (0)