@@ -3127,13 +3127,12 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
3127
3127
let mut phantom_receives: Vec < ( u64 , OutPoint , Vec < ( PendingHTLCInfo , u64 ) > ) > = Vec :: new ( ) ;
3128
3128
let mut handle_errors = Vec :: new ( ) ;
3129
3129
{
3130
- let mut channel_state_lock = self . channel_state . lock ( ) . unwrap ( ) ;
3131
- let channel_state = & mut * channel_state_lock;
3132
-
3133
3130
let mut forward_htlcs = HashMap :: new ( ) ;
3134
3131
mem:: swap ( & mut forward_htlcs, & mut self . forward_htlcs . lock ( ) . unwrap ( ) ) ;
3135
3132
3136
3133
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;
3137
3136
if short_chan_id != 0 {
3138
3137
let forward_chan_id = match channel_state. short_to_chan_info . get ( & short_chan_id) {
3139
3138
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
3781
3780
pub fn fail_htlc_backwards ( & self , payment_hash : & PaymentHash ) {
3782
3781
let _persistence_guard = PersistenceNotifierGuard :: notify_on_drop ( & self . total_consistency_lock , & self . persistence_notifier ) ;
3783
3782
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
+ } ;
3786
3787
if let Some ( ( _, mut sources) ) = removed_source {
3787
3788
for htlc in sources. drain ( ..) {
3788
- if channel_state. is_none ( ) { channel_state = Some ( self . channel_state . lock ( ) . unwrap ( ) ) ; }
3789
3789
let mut htlc_msat_height_data = byte_utils:: be64_to_array ( htlc. value ) . to_vec ( ) ;
3790
3790
htlc_msat_height_data. extend_from_slice ( & byte_utils:: be32_to_array (
3791
3791
self . best_block . read ( ) . unwrap ( ) . height ( ) ) ) ;
0 commit comments