@@ -313,7 +313,7 @@ macro_rules! define_run_body {
313
313
$channel_manager: ident, $process_channel_manager_events: expr,
314
314
$onion_messenger: ident, $process_onion_message_handler_events: expr,
315
315
$peer_manager: ident, $gossip_sync: ident,
316
- $sweeper: ident ,
316
+ $sweeper: expr ,
317
317
$logger: ident, $scorer: ident, $loop_exit_check: expr, $await: expr, $get_timer: expr,
318
318
$timer_elapsed: expr, $check_slow_await: expr, $time_fetch: expr,
319
319
) => { {
@@ -473,7 +473,7 @@ macro_rules! define_run_body {
473
473
474
474
if $timer_elapsed( & mut last_sweeper_call, SWEEPER_TIMER ) {
475
475
log_trace!( $logger, "Regenerate sweeper spends if necessary" ) ;
476
- let _ = $sweeper. regenerate_and_broadcast_spend_if_necessary_locked ( ) ;
476
+ let _ = $sweeper;
477
477
last_sweeper_call = $get_timer( SWEEPER_TIMER ) ;
478
478
}
479
479
}
@@ -602,7 +602,7 @@ pub(crate) mod futures_util {
602
602
}
603
603
}
604
604
#[ cfg( feature = "futures" ) ]
605
- use core:: task;
605
+ use core:: { task, future :: Future } ;
606
606
#[ cfg( feature = "futures" ) ]
607
607
use futures_util:: { dummy_waker, OptionalSelector , Selector , SelectorOutput } ;
608
608
@@ -757,6 +757,10 @@ pub async fn process_events_async<
757
757
+ Sync ,
758
758
CM : ' static + Deref + Send + Sync ,
759
759
OM : ' static + Deref + Send + Sync ,
760
+ D : ' static + Deref + Send + Sync ,
761
+ O : ' static + Deref + Send + Sync ,
762
+ K : ' static + Deref + Send + Sync ,
763
+ OS : ' static + Deref < Target = OutputSweeper < T , D , F , CF , K , L , O > > + Send + Sync ,
760
764
PGS : ' static + Deref < Target = P2PGossipSync < G , UL , L > > + Send + Sync ,
761
765
RGS : ' static + Deref < Target = RapidGossipSync < G , L > > + Send ,
762
766
PM : ' static + Deref + Send + Sync ,
@@ -768,12 +772,13 @@ pub async fn process_events_async<
768
772
> (
769
773
persister : PS , event_handler : EventHandler , chain_monitor : M , channel_manager : CM ,
770
774
onion_messenger : Option < OM > , gossip_sync : GossipSync < PGS , RGS , G , UL , L > , peer_manager : PM ,
775
+ sweeper : OS ,
771
776
logger : L , scorer : Option < S > , sleeper : Sleeper , mobile_interruptable_platform : bool ,
772
777
fetch_time : FetchTime ,
773
778
) -> Result < ( ) , lightning:: io:: Error >
774
779
where
775
780
UL :: Target : ' static + UtxoLookup ,
776
- CF :: Target : ' static + chain:: Filter ,
781
+ CF :: Target : ' static + chain:: Filter + Sync + Send ,
777
782
T :: Target : ' static + BroadcasterInterface ,
778
783
F :: Target : ' static + FeeEstimator ,
779
784
L :: Target : ' static + Logger ,
@@ -782,6 +787,9 @@ where
782
787
CM :: Target : AChannelManager + Send + Sync ,
783
788
OM :: Target : AOnionMessenger + Send + Sync ,
784
789
PM :: Target : APeerManager + Send + Sync ,
790
+ O :: Target : ' static + OutputSpender + Send + Sync ,
791
+ D :: Target : ' static + ChangeDestinationSource + Send + Sync ,
792
+ K :: Target : ' static + KVStore + Send + Sync ,
785
793
{
786
794
let mut should_break = false ;
787
795
let async_event_handler = |event| {
@@ -825,6 +833,7 @@ where
825
833
} ,
826
834
peer_manager,
827
835
gossip_sync,
836
+ sweeper. regenerate_and_broadcast_spend_if_necessary_async( ) . await ,
828
837
logger,
829
838
scorer,
830
839
should_break,
@@ -995,7 +1004,7 @@ impl BackgroundProcessor {
995
1004
} ,
996
1005
peer_manager,
997
1006
gossip_sync,
998
- sweeper,
1007
+ sweeper. regenerate_and_broadcast_spend_if_necessary ( ) ,
999
1008
logger,
1000
1009
scorer,
1001
1010
stop_thread. load( Ordering :: Acquire ) ,
@@ -1108,8 +1117,7 @@ mod tests {
1108
1117
use lightning:: routing:: gossip:: { NetworkGraph , P2PGossipSync } ;
1109
1118
use lightning:: routing:: router:: { CandidateRouteHop , DefaultRouter , Path , RouteHop } ;
1110
1119
use lightning:: routing:: scoring:: { ChannelUsage , LockableScore , ScoreLookUp , ScoreUpdate } ;
1111
- use lightning:: routing:: utxo:: UtxoLookup ;
1112
- use lightning:: sign:: { ChangeDestinationSource , InMemorySigner , KeysManager } ;
1120
+ use lightning:: sign:: { AsyncGetChangeDestinationScriptResult , ChangeDestinationSource , InMemorySigner , KeysManager } ;
1113
1121
use lightning:: types:: features:: { ChannelFeatures , NodeFeatures } ;
1114
1122
use lightning:: types:: payment:: PaymentHash ;
1115
1123
use lightning:: util:: config:: UserConfig ;
@@ -1544,8 +1552,10 @@ mod tests {
1544
1552
struct TestWallet { }
1545
1553
1546
1554
impl ChangeDestinationSource for TestWallet {
1547
- fn get_change_destination_script ( & self ) -> Result < ScriptBuf , ( ) > {
1548
- Ok ( ScriptBuf :: new ( ) )
1555
+ fn get_change_destination_script < ' a > ( & self ) -> AsyncGetChangeDestinationScriptResult < ' a , ScriptBuf > {
1556
+ Box :: pin ( async move {
1557
+ Ok ( ScriptBuf :: new ( ) )
1558
+ } )
1549
1559
}
1550
1560
}
1551
1561
@@ -2027,6 +2037,7 @@ mod tests {
2027
2037
Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
2028
2038
nodes[ 0 ] . rapid_gossip_sync ( ) ,
2029
2039
nodes[ 0 ] . peer_manager . clone ( ) ,
2040
+ nodes[ 0 ] . sweeper . clone ( ) ,
2030
2041
nodes[ 0 ] . logger . clone ( ) ,
2031
2042
Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
2032
2043
move |dur : Duration | {
@@ -2514,6 +2525,7 @@ mod tests {
2514
2525
Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
2515
2526
nodes[ 0 ] . rapid_gossip_sync ( ) ,
2516
2527
nodes[ 0 ] . peer_manager . clone ( ) ,
2528
+ nodes[ 0 ] . sweeper . clone ( ) ,
2517
2529
nodes[ 0 ] . logger . clone ( ) ,
2518
2530
Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
2519
2531
move |dur : Duration | {
@@ -2727,6 +2739,7 @@ mod tests {
2727
2739
Some ( nodes[ 0 ] . messenger . clone ( ) ) ,
2728
2740
nodes[ 0 ] . no_gossip_sync ( ) ,
2729
2741
nodes[ 0 ] . peer_manager . clone ( ) ,
2742
+ nodes[ 0 ] . sweeper . clone ( ) ,
2730
2743
nodes[ 0 ] . logger . clone ( ) ,
2731
2744
Some ( nodes[ 0 ] . scorer . clone ( ) ) ,
2732
2745
move |dur : Duration | {
0 commit comments