Skip to content

Commit ce431d9

Browse files
committed
Re-order async background processor tasks
Prepare for parallelization.
1 parent b401a65 commit ce431d9

File tree

1 file changed

+52
-52
lines changed
  • lightning-background-processor/src

1 file changed

+52
-52
lines changed

lightning-background-processor/src/lib.rs

Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -797,6 +797,17 @@ where
797797
false
798798
};
799799

800+
// Channel manager timer tick.
801+
match check_sleeper(&mut last_freshness_call) {
802+
Some(false) => {
803+
log_trace!(logger, "Calling ChannelManager's timer_tick_occurred");
804+
channel_manager.get_cm().timer_tick_occurred();
805+
last_freshness_call = sleeper(FRESHNESS_TIMER);
806+
},
807+
Some(true) => break,
808+
None => {},
809+
}
810+
800811
// Persist channel manager.
801812
if channel_manager.get_cm().get_and_clear_needs_persistence() {
802813
log_trace!(logger, "Persisting ChannelManager...");
@@ -811,47 +822,6 @@ where
811822
log_trace!(logger, "Done persisting ChannelManager.");
812823
}
813824

814-
// Channel manager timer tick.
815-
match check_sleeper(&mut last_freshness_call) {
816-
Some(false) => {
817-
log_trace!(logger, "Calling ChannelManager's timer_tick_occurred");
818-
channel_manager.get_cm().timer_tick_occurred();
819-
last_freshness_call = sleeper(FRESHNESS_TIMER);
820-
},
821-
Some(true) => break,
822-
None => {},
823-
}
824-
825-
// Onion messenger timer tick.
826-
match check_sleeper(&mut last_onion_message_handler_call) {
827-
Some(false) => {
828-
if let Some(om) = &onion_messenger {
829-
log_trace!(logger, "Calling OnionMessageHandler's timer_tick_occurred");
830-
om.get_om().timer_tick_occurred();
831-
}
832-
last_onion_message_handler_call = sleeper(ONION_MESSAGE_HANDLER_TIMER);
833-
},
834-
Some(true) => break,
835-
None => {},
836-
}
837-
838-
// Peer manager timer tick. If we were interrupted on a mobile platform, we disconnect all peers.
839-
if await_slow {
840-
log_trace!(logger, "100ms sleep took more than a second, disconnecting peers.");
841-
peer_manager.as_ref().disconnect_all_peers();
842-
last_ping_call = sleeper(PING_TIMER);
843-
} else {
844-
match check_sleeper(&mut last_ping_call) {
845-
Some(false) => {
846-
log_trace!(logger, "Calling PeerManager's timer_tick_occurred");
847-
peer_manager.as_ref().timer_tick_occurred();
848-
last_ping_call = sleeper(PING_TIMER);
849-
},
850-
Some(true) => break,
851-
_ => {},
852-
}
853-
}
854-
855825
// Prune and persist the network graph if necessary.
856826
let prune_timer_elapsed = {
857827
match check_sleeper(&mut last_prune_call) {
@@ -935,17 +905,6 @@ where
935905
None => {},
936906
}
937907

938-
// Rebroadcast pending claims.
939-
match check_sleeper(&mut last_rebroadcast_call) {
940-
Some(false) => {
941-
log_trace!(logger, "Rebroadcasting monitor's pending claims");
942-
chain_monitor.rebroadcast_pending_claims();
943-
last_rebroadcast_call = sleeper(REBROADCAST_TIMER);
944-
},
945-
Some(true) => break,
946-
None => {},
947-
}
948-
949908
// Sweeper regeneration and broadcast.
950909
match check_sleeper(&mut last_sweeper_call) {
951910
Some(false) => {
@@ -958,6 +917,47 @@ where
958917
Some(true) => break,
959918
None => {},
960919
}
920+
921+
// Onion messenger timer tick.
922+
match check_sleeper(&mut last_onion_message_handler_call) {
923+
Some(false) => {
924+
if let Some(om) = &onion_messenger {
925+
log_trace!(logger, "Calling OnionMessageHandler's timer_tick_occurred");
926+
om.get_om().timer_tick_occurred();
927+
}
928+
last_onion_message_handler_call = sleeper(ONION_MESSAGE_HANDLER_TIMER);
929+
},
930+
Some(true) => break,
931+
None => {},
932+
}
933+
934+
// Peer manager timer tick. If we were interrupted on a mobile platform, we disconnect all peers.
935+
if await_slow {
936+
log_trace!(logger, "100ms sleep took more than a second, disconnecting peers.");
937+
peer_manager.as_ref().disconnect_all_peers();
938+
last_ping_call = sleeper(PING_TIMER);
939+
} else {
940+
match check_sleeper(&mut last_ping_call) {
941+
Some(false) => {
942+
log_trace!(logger, "Calling PeerManager's timer_tick_occurred");
943+
peer_manager.as_ref().timer_tick_occurred();
944+
last_ping_call = sleeper(PING_TIMER);
945+
},
946+
Some(true) => break,
947+
_ => {},
948+
}
949+
}
950+
951+
// Rebroadcast pending claims.
952+
match check_sleeper(&mut last_rebroadcast_call) {
953+
Some(false) => {
954+
log_trace!(logger, "Rebroadcasting monitor's pending claims");
955+
chain_monitor.rebroadcast_pending_claims();
956+
last_rebroadcast_call = sleeper(REBROADCAST_TIMER);
957+
},
958+
Some(true) => break,
959+
None => {},
960+
}
961961
}
962962
log_trace!(logger, "Terminating background processor.");
963963

0 commit comments

Comments
 (0)