@@ -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 , MessageContext , OffersContext , 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 } ;
@@ -1328,7 +1328,7 @@ where
1328
1328
/// have an ordering requirement.
1329
1329
///
1330
1330
/// See the trait-level documentation of [`EventsProvider`] for requirements.
1331
- pub async fn process_pending_events_async < Future : core:: future:: Future < Output = Result < ( ) , ( ) > > + core:: marker:: Unpin , H : Fn ( Event ) -> Future > (
1331
+ pub async fn process_pending_events_async < Future : core:: future:: Future < Output = Result < ( ) , ReplayEvent > > + core:: marker:: Unpin , H : Fn ( Event ) -> Future > (
1332
1332
& self , handler : H
1333
1333
) {
1334
1334
let mut intercepted_msgs = Vec :: new ( ) ;
@@ -1346,26 +1346,26 @@ where
1346
1346
for ( node_id, recipient) in self . message_recipients . lock ( ) . unwrap ( ) . iter_mut ( ) {
1347
1347
if let OnionMessageRecipient :: PendingConnection ( _, addresses, _) = recipient {
1348
1348
if let Some ( addresses) = addresses. take ( ) {
1349
- futures. push ( Some ( handler ( Event :: ConnectionNeeded { node_id : * node_id, addresses } ) ) ) ;
1349
+ futures. push ( handler ( Event :: ConnectionNeeded { node_id : * node_id, addresses } ) ) ;
1350
1350
}
1351
1351
}
1352
1352
}
1353
1353
1354
1354
for ev in intercepted_msgs {
1355
1355
if let Event :: OnionMessageIntercepted { .. } = ev { } else { debug_assert ! ( false ) ; }
1356
- futures. push ( Some ( handler ( ev) ) ) ;
1356
+ futures. push ( handler ( ev) ) ;
1357
1357
}
1358
1358
// Let the `OnionMessageIntercepted` events finish before moving on to peer_connecteds
1359
- crate :: util:: async_poll:: MultiFuturePoller ( futures) . await ;
1359
+ crate :: util:: async_poll:: MultiResultFuturePoller :: new ( futures) . await ;
1360
1360
1361
1361
if peer_connecteds. len ( ) <= 1 {
1362
1362
for event in peer_connecteds { handler ( event) . await ; }
1363
1363
} else {
1364
1364
let mut futures = Vec :: new ( ) ;
1365
1365
for event in peer_connecteds {
1366
- futures. push ( Some ( handler ( event) ) ) ;
1366
+ futures. push ( handler ( event) ) ;
1367
1367
}
1368
- crate :: util:: async_poll:: MultiFuturePoller ( futures) . await ;
1368
+ crate :: util:: async_poll:: MultiResultFuturePoller :: new ( futures) . await ;
1369
1369
}
1370
1370
}
1371
1371
}
0 commit comments