Skip to content

Commit efbd2f2

Browse files
f - ChannelManager::write lockorder cleanup
1 parent 736d403 commit efbd2f2

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6641,37 +6641,36 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> Writeable f
66416641
}
66426642
}
66436643

6644-
let mut htlc_purposes: Vec<events::PaymentPurpose> = Vec::new();
6645-
{
6646-
let claimable_htlcs = self.claimable_htlcs.lock().unwrap();
6647-
(claimable_htlcs.len() as u64).write(writer)?;
6648-
for (payment_hash, (purpose, previous_hops)) in claimable_htlcs.iter() {
6649-
payment_hash.write(writer)?;
6650-
(previous_hops.len() as u64).write(writer)?;
6651-
for htlc in previous_hops.iter() {
6652-
htlc.write(writer)?;
6653-
}
6654-
htlc_purposes.push(purpose.clone());
6644+
let per_peer_state = self.per_peer_state.write().unwrap();
6645+
let pending_inbound_payments = self.pending_inbound_payments.lock().unwrap();
6646+
let claimable_htlcs = self.claimable_htlcs.lock().unwrap();
6647+
let pending_outbound_payments = self.pending_outbound_payments.lock().unwrap();
6648+
let events = self.pending_events.lock().unwrap();
6649+
let background_events = self.pending_background_events.lock().unwrap();
6650+
6651+
let mut htlc_purposes: Vec<&events::PaymentPurpose> = Vec::new();
6652+
(claimable_htlcs.len() as u64).write(writer)?;
6653+
for (payment_hash, (purpose, previous_hops)) in claimable_htlcs.iter() {
6654+
payment_hash.write(writer)?;
6655+
(previous_hops.len() as u64).write(writer)?;
6656+
for htlc in previous_hops.iter() {
6657+
htlc.write(writer)?;
66556658
}
6659+
htlc_purposes.push(purpose);
66566660
}
66576661

6658-
let per_peer_state = self.per_peer_state.write().unwrap();
66596662
(per_peer_state.len() as u64).write(writer)?;
66606663
for (peer_pubkey, peer_state_mutex) in per_peer_state.iter() {
66616664
peer_pubkey.write(writer)?;
66626665
let peer_state = peer_state_mutex.lock().unwrap();
66636666
peer_state.latest_features.write(writer)?;
66646667
}
66656668

6666-
let pending_inbound_payments = self.pending_inbound_payments.lock().unwrap();
6667-
let pending_outbound_payments = self.pending_outbound_payments.lock().unwrap();
6668-
let events = self.pending_events.lock().unwrap();
66696669
(events.len() as u64).write(writer)?;
66706670
for event in events.iter() {
66716671
event.write(writer)?;
66726672
}
66736673

6674-
let background_events = self.pending_background_events.lock().unwrap();
66756674
(background_events.len() as u64).write(writer)?;
66766675
for event in background_events.iter() {
66776676
match event {

0 commit comments

Comments
 (0)