Skip to content

Commit c709bd4

Browse files
f - Don't take unnecessary channel_state locks
1 parent 39bd9f2 commit c709bd4

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3127,13 +3127,12 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
31273127
let mut phantom_receives: Vec<(u64, OutPoint, Vec<(PendingHTLCInfo, u64)>)> = Vec::new();
31283128
let mut handle_errors = Vec::new();
31293129
{
3130-
let mut channel_state_lock = self.channel_state.lock().unwrap();
3131-
let channel_state = &mut *channel_state_lock;
3132-
31333130
let mut forward_htlcs = HashMap::new();
31343131
mem::swap(&mut forward_htlcs, &mut self.forward_htlcs.lock().unwrap());
31353132

31363133
for (short_chan_id, mut pending_forwards) in forward_htlcs {
3134+
let mut channel_state_lock = self.channel_state.lock().unwrap();
3135+
let channel_state = &mut *channel_state_lock;
31373136
if short_chan_id != 0 {
31383137
let forward_chan_id = match channel_state.short_to_chan_info.get(&short_chan_id) {
31393138
Some((_cp_id, chan_id)) => chan_id.clone(),
@@ -3781,11 +3780,12 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
37813780
pub fn fail_htlc_backwards(&self, payment_hash: &PaymentHash) {
37823781
let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(&self.total_consistency_lock, &self.persistence_notifier);
37833782

3784-
let mut channel_state = Some(self.channel_state.lock().unwrap());
3785-
let removed_source = channel_state.as_mut().unwrap().claimable_htlcs.remove(payment_hash);
3783+
let removed_source = {
3784+
let mut channel_state = self.channel_state.lock().unwrap();
3785+
channel_state.claimable_htlcs.remove(payment_hash)
3786+
};
37863787
if let Some((_, mut sources)) = removed_source {
37873788
for htlc in sources.drain(..) {
3788-
if channel_state.is_none() { channel_state = Some(self.channel_state.lock().unwrap()); }
37893789
let mut htlc_msat_height_data = byte_utils::be64_to_array(htlc.value).to_vec();
37903790
htlc_msat_height_data.extend_from_slice(&byte_utils::be32_to_array(
37913791
self.best_block.read().unwrap().height()));

0 commit comments

Comments
 (0)