@@ -18,7 +18,7 @@ use bitcoin::secp256k1::{self, PublicKey, Scalar, Secp256k1, SecretKey};
18
18
use crate :: blinded_path:: { BlindedPath , IntroductionNode , NextMessageHop , NodeIdLookUp } ;
19
19
use crate :: blinded_path:: message:: { advance_path_by_one, ForwardNode , ForwardTlvs , ReceiveTlvs } ;
20
20
use crate :: blinded_path:: utils;
21
- use crate :: events:: { Event , EventHandler , EventsProvider } ;
21
+ use crate :: events:: { Event , EventHandler , EventsProvider , ReplayEvent } ;
22
22
use crate :: sign:: { EntropySource , NodeSigner , Recipient } ;
23
23
use crate :: ln:: features:: { InitFeatures , NodeFeatures } ;
24
24
use crate :: ln:: msgs:: { self , OnionMessage , OnionMessageHandler , SocketAddress } ;
@@ -1317,7 +1317,7 @@ where
1317
1317
/// have an ordering requirement.
1318
1318
///
1319
1319
/// See the trait-level documentation of [`EventsProvider`] for requirements.
1320
- pub async fn process_pending_events_async < Future : core:: future:: Future < Output = Result < ( ) , ( ) > > + core:: marker:: Unpin , H : Fn ( Event ) -> Future > (
1320
+ pub async fn process_pending_events_async < Future : core:: future:: Future < Output = Result < ( ) , ReplayEvent > > + core:: marker:: Unpin , H : Fn ( Event ) -> Future > (
1321
1321
& self , handler : H
1322
1322
) {
1323
1323
let mut intercepted_msgs = Vec :: new ( ) ;
@@ -1335,26 +1335,26 @@ where
1335
1335
for ( node_id, recipient) in self . message_recipients . lock ( ) . unwrap ( ) . iter_mut ( ) {
1336
1336
if let OnionMessageRecipient :: PendingConnection ( _, addresses, _) = recipient {
1337
1337
if let Some ( addresses) = addresses. take ( ) {
1338
- futures. push ( Some ( handler ( Event :: ConnectionNeeded { node_id : * node_id, addresses } ) ) ) ;
1338
+ futures. push ( handler ( Event :: ConnectionNeeded { node_id : * node_id, addresses } ) ) ;
1339
1339
}
1340
1340
}
1341
1341
}
1342
1342
1343
1343
for ev in intercepted_msgs {
1344
1344
if let Event :: OnionMessageIntercepted { .. } = ev { } else { debug_assert ! ( false ) ; }
1345
- futures. push ( Some ( handler ( ev) ) ) ;
1345
+ futures. push ( handler ( ev) ) ;
1346
1346
}
1347
1347
// Let the `OnionMessageIntercepted` events finish before moving on to peer_connecteds
1348
- crate :: util:: async_poll:: MultiFuturePoller ( futures) . await ;
1348
+ crate :: util:: async_poll:: MultiEventFuturePoller :: new ( futures) . await ;
1349
1349
1350
1350
if peer_connecteds. len ( ) <= 1 {
1351
1351
for event in peer_connecteds { handler ( event) . await ; }
1352
1352
} else {
1353
1353
let mut futures = Vec :: new ( ) ;
1354
1354
for event in peer_connecteds {
1355
- futures. push ( Some ( handler ( event) ) ) ;
1355
+ futures. push ( handler ( event) ) ;
1356
1356
}
1357
- crate :: util:: async_poll:: MultiFuturePoller ( futures) . await ;
1357
+ crate :: util:: async_poll:: MultiEventFuturePoller :: new ( futures) . await ;
1358
1358
}
1359
1359
}
1360
1360
}
0 commit comments