Skip to content

Commit 960ab7d

Browse files
f - Don't take unnecessary channel_state locks
1 parent 0f357f0 commit 960ab7d

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
@@ -3095,13 +3095,12 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
30953095
let mut phantom_receives: Vec<(u64, OutPoint, Vec<(PendingHTLCInfo, u64)>)> = Vec::new();
30963096
let mut handle_errors = Vec::new();
30973097
{
3098-
let mut channel_state_lock = self.channel_state.lock().unwrap();
3099-
let channel_state = &mut *channel_state_lock;
3100-
31013098
let mut forward_htlcs = HashMap::new();
31023099
mem::swap(&mut forward_htlcs, &mut self.forward_htlcs.lock().unwrap());
31033100

31043101
for (short_chan_id, mut pending_forwards) in forward_htlcs {
3102+
let mut channel_state_lock = self.channel_state.lock().unwrap();
3103+
let channel_state = &mut *channel_state_lock;
31053104
if short_chan_id != 0 {
31063105
let forward_chan_id = match channel_state.short_to_chan_info.get(&short_chan_id) {
31073106
Some((_cp_id, chan_id)) => chan_id.clone(),
@@ -3749,11 +3748,12 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
37493748
pub fn fail_htlc_backwards(&self, payment_hash: &PaymentHash) {
37503749
let _persistence_guard = PersistenceNotifierGuard::notify_on_drop(&self.total_consistency_lock, &self.persistence_notifier);
37513750

3752-
let mut channel_state = Some(self.channel_state.lock().unwrap());
3753-
let removed_source = channel_state.as_mut().unwrap().claimable_htlcs.remove(payment_hash);
3751+
let removed_source = {
3752+
let mut channel_state = self.channel_state.lock().unwrap();
3753+
channel_state.claimable_htlcs.remove(payment_hash)
3754+
};
37543755
if let Some((_, mut sources)) = removed_source {
37553756
for htlc in sources.drain(..) {
3756-
if channel_state.is_none() { channel_state = Some(self.channel_state.lock().unwrap()); }
37573757
let mut htlc_msat_height_data = byte_utils::be64_to_array(htlc.value).to_vec();
37583758
htlc_msat_height_data.extend_from_slice(&byte_utils::be32_to_array(
37593759
self.best_block.read().unwrap().height()));

0 commit comments

Comments
 (0)