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