@@ -620,9 +620,8 @@ where C::Target: chain::Filter,
620620pub  fn  rebroadcast_pending_claims ( & self )  { 
621621		let  monitors = self . monitors . read ( ) . unwrap ( ) ; 
622622		for  ( _,  monitor_holder)  in  & * monitors { 
623- 			let  logger = WithChannelMonitor :: from ( & self . logger ,  & monitor_holder. monitor ) ; 
624623			monitor_holder. monitor . rebroadcast_pending_claims ( 
625- 				& * self . broadcaster ,  & * self . fee_estimator ,  & logger
624+ 				& * self . broadcaster ,  & * self . fee_estimator ,  & self . logger 
626625			) 
627626		} 
628627	} 
@@ -640,19 +639,17 @@ where
640639	fn  filtered_block_connected ( & self ,  header :  & Header ,  txdata :  & TransactionData ,  height :  u32 )  { 
641640		log_debug ! ( self . logger,  "New best block {} at height {} provided via block_connected" ,  header. block_hash( ) ,  height) ; 
642641		self . process_chain_data ( header,  Some ( height) ,  & txdata,  |monitor,  txdata| { 
643- 			let  logger = WithChannelMonitor :: from ( & self . logger ,  & monitor) ; 
644642			monitor. block_connected ( 
645- 				header,  txdata,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & logger) 
643+ 				header,  txdata,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & self . logger ) 
646644		} ) ; 
647645	} 
648646
649647	fn  block_disconnected ( & self ,  header :  & Header ,  height :  u32 )  { 
650648		let  monitor_states = self . monitors . read ( ) . unwrap ( ) ; 
651649		log_debug ! ( self . logger,  "Latest block {} at height {} removed via block_disconnected" ,  header. block_hash( ) ,  height) ; 
652650		for  monitor_state in  monitor_states. values ( )  { 
653- 			let  logger = WithChannelMonitor :: from ( & self . logger ,  & monitor_state. monitor ) ; 
654651			monitor_state. monitor . block_disconnected ( 
655- 				header,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & logger) ; 
652+ 				header,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & self . logger ) ; 
656653		} 
657654	} 
658655} 
@@ -669,30 +666,28 @@ where
669666	fn  transactions_confirmed ( & self ,  header :  & Header ,  txdata :  & TransactionData ,  height :  u32 )  { 
670667		log_debug ! ( self . logger,  "{} provided transactions confirmed at height {} in block {}" ,  txdata. len( ) ,  height,  header. block_hash( ) ) ; 
671668		self . process_chain_data ( header,  None ,  txdata,  |monitor,  txdata| { 
672- 			let  logger = WithChannelMonitor :: from ( & self . logger ,  & monitor) ; 
673669			monitor. transactions_confirmed ( 
674- 				header,  txdata,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & logger) 
670+ 				header,  txdata,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & self . logger ) 
675671		} ) ; 
676672	} 
677673
678674	fn  transaction_unconfirmed ( & self ,  txid :  & Txid )  { 
679675		log_debug ! ( self . logger,  "Transaction {} reorganized out of chain" ,  txid) ; 
680676		let  monitor_states = self . monitors . read ( ) . unwrap ( ) ; 
681677		for  monitor_state in  monitor_states. values ( )  { 
682- 			let  logger = WithChannelMonitor :: from ( & self . logger ,  & monitor_state. monitor ) ; 
683- 			monitor_state. monitor . transaction_unconfirmed ( txid,  & * self . broadcaster ,  & * self . fee_estimator ,  & logger) ; 
678+ 			monitor_state. monitor . transaction_unconfirmed ( txid,  & * self . broadcaster ,  & * self . fee_estimator ,  & self . logger ) ; 
684679		} 
685680	} 
686681
687682	fn  best_block_updated ( & self ,  header :  & Header ,  height :  u32 )  { 
688683		log_debug ! ( self . logger,  "New best block {} at height {} provided via best_block_updated" ,  header. block_hash( ) ,  height) ; 
689684		self . process_chain_data ( header,  Some ( height) ,  & [ ] ,  |monitor,  txdata| { 
690- 			let  logger = WithChannelMonitor :: from ( & self . logger ,  & monitor) ; 
691685			// While in practice there shouldn't be any recursive calls when given empty txdata, 
692686			// it's still possible if a chain::Filter implementation returns a transaction. 
693687			debug_assert ! ( txdata. is_empty( ) ) ; 
694688			monitor. best_block_updated ( 
695- 				header,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & logger) 
689+ 				header,  height,  & * self . broadcaster ,  & * self . fee_estimator ,  & self . logger 
690+ 			) 
696691		} ) ; 
697692	} 
698693
@@ -758,8 +753,7 @@ where C::Target: chain::Filter,
758753
759754	fn  update_channel ( & self ,  funding_txo :  OutPoint ,  update :  & ChannelMonitorUpdate )  -> ChannelMonitorUpdateStatus  { 
760755		// Update the monitor that watches the channel referred to by the given outpoint. 
761- 		let  monitors_lock = self . monitors . read ( ) . unwrap ( ) ; 
762- 		let  monitors = monitors_lock. deref ( ) ; 
756+ 		let  monitors = self . monitors . read ( ) . unwrap ( ) ; 
763757		match  monitors. get ( & funding_txo)  { 
764758			None  => { 
765759				log_error ! ( self . logger,  "Failed to update channel monitor: no such monitor registered" ) ; 
@@ -802,6 +796,7 @@ where C::Target: chain::Filter,
802796					ChannelMonitorUpdateStatus :: UnrecoverableError  => { 
803797						// Take the monitors lock for writing so that we poison it and any future 
804798						// operations going forward fail immediately. 
799+ 						core:: mem:: drop ( pending_monitor_updates) ; 
805800						core:: mem:: drop ( monitors) ; 
806801						let  _poison = self . monitors . write ( ) . unwrap ( ) ; 
807802						let  err_str = "ChannelMonitor[Update] persistence failed unrecoverably. This indicates we cannot continue normal operation and must shut down." ; 
0 commit comments