Skip to content

Commit f1761e0

Browse files
authored
Merge pull request #2221 from TheBlueMatt/2023-04-bp-exit-fast
Check for `background-processor` exit condition before+after sleep
2 parents 607727f + 0553591 commit f1761e0

File tree

1 file changed

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

1 file changed

+12
-5
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)