@@ -297,23 +297,30 @@ macro_rules! define_run_body {
297297 // persistence.
298298 $peer_manager. process_events( ) ;
299299
300+ // Exit the loop if the background processor was requested to stop.
301+ if $loop_exit_check {
302+ log_trace!( $logger, "Terminating background processor." ) ;
303+ break ;
304+ }
305+
300306 // We wait up to 100ms, but track how long it takes to detect being put to sleep,
301307 // see `await_start`'s use below.
302308 let mut await_start = None ;
303309 if $check_slow_await { await_start = Some ( $get_timer( 1 ) ) ; }
304310 let updates_available = $await;
305311 let await_slow = if $check_slow_await { $timer_elapsed( & mut await_start. unwrap( ) , 1 ) } else { false } ;
306312
307- if updates_available {
308- log_trace!( $logger, "Persisting ChannelManager..." ) ;
309- $persister. persist_manager( & * $channel_manager) ?;
310- log_trace!( $logger, "Done persisting ChannelManager." ) ;
311- }
312313 // Exit the loop if the background processor was requested to stop.
313314 if $loop_exit_check {
314315 log_trace!( $logger, "Terminating background processor." ) ;
315316 break ;
316317 }
318+
319+ if updates_available {
320+ log_trace!( $logger, "Persisting ChannelManager..." ) ;
321+ $persister. persist_manager( & * $channel_manager) ?;
322+ log_trace!( $logger, "Done persisting ChannelManager." ) ;
323+ }
317324 if $timer_elapsed( & mut last_freshness_call, FRESHNESS_TIMER ) {
318325 log_trace!( $logger, "Calling ChannelManager's timer_tick_occurred" ) ;
319326 $channel_manager. timer_tick_occurred( ) ;
0 commit comments