@@ -3095,13 +3095,12 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
3095
3095
let mut phantom_receives: Vec < ( u64 , OutPoint , Vec < ( PendingHTLCInfo , u64 ) > ) > = Vec :: new ( ) ;
3096
3096
let mut handle_errors = Vec :: new ( ) ;
3097
3097
{
3098
- let mut channel_state_lock = self . channel_state . lock ( ) . unwrap ( ) ;
3099
- let channel_state = & mut * channel_state_lock;
3100
-
3101
3098
let mut forward_htlcs = HashMap :: new ( ) ;
3102
3099
mem:: swap ( & mut forward_htlcs, & mut self . forward_htlcs . lock ( ) . unwrap ( ) ) ;
3103
3100
3104
3101
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;
3105
3104
if short_chan_id != 0 {
3106
3105
let forward_chan_id = match channel_state. short_to_chan_info . get ( & short_chan_id) {
3107
3106
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
3749
3748
pub fn fail_htlc_backwards ( & self , payment_hash : & PaymentHash ) {
3750
3749
let _persistence_guard = PersistenceNotifierGuard :: notify_on_drop ( & self . total_consistency_lock , & self . persistence_notifier ) ;
3751
3750
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
+ } ;
3754
3755
if let Some ( ( _, mut sources) ) = removed_source {
3755
3756
for htlc in sources. drain ( ..) {
3756
- if channel_state. is_none ( ) { channel_state = Some ( self . channel_state . lock ( ) . unwrap ( ) ) ; }
3757
3757
let mut htlc_msat_height_data = byte_utils:: be64_to_array ( htlc. value ) . to_vec ( ) ;
3758
3758
htlc_msat_height_data. extend_from_slice ( & byte_utils:: be32_to_array (
3759
3759
self . best_block . read ( ) . unwrap ( ) . height ( ) ) ) ;
0 commit comments