@@ -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