@@ -1479,11 +1479,21 @@ where
1479
1479
pending_peer_connected_events. shrink_to ( 10 ) ; // Limit total heap usage
1480
1480
}
1481
1481
1482
- let res = intercepted_msgs. into_iter ( ) . map ( |ev| handler. handle_event ( ev) ) . collect :: < Vec < _ > > ( ) ;
1483
- drop_handled_events_and_abort ! ( self , res, 0 , self . pending_intercepted_msgs_events) ;
1482
+ if intercepted_msgs. len ( ) == 1 {
1483
+ let res = intercepted_msgs. into_iter ( ) . next ( ) . map ( |ev| handler. handle_event ( ev) ) ;
1484
+ drop_handled_events_and_abort ! ( self , res, 0 , self . pending_intercepted_msgs_events) ;
1485
+ } else {
1486
+ let res = intercepted_msgs. into_iter ( ) . map ( |ev| handler. handle_event ( ev) ) . collect :: < Vec < _ > > ( ) ;
1487
+ drop_handled_events_and_abort ! ( self , res, 0 , self . pending_intercepted_msgs_events) ;
1488
+ } ;
1484
1489
1485
- let res = peer_connecteds. into_iter ( ) . map ( |ev| handler. handle_event ( ev) ) . collect :: < Vec < _ > > ( ) ;
1486
- drop_handled_events_and_abort ! ( self , res, 0 , self . pending_peer_connected_events) ;
1490
+ if peer_connecteds. len ( ) == 1 {
1491
+ let res = peer_connecteds. into_iter ( ) . next ( ) . map ( |ev| handler. handle_event ( ev) ) ;
1492
+ drop_handled_events_and_abort ! ( self , res, 0 , self . pending_peer_connected_events) ;
1493
+ } else {
1494
+ let res = peer_connecteds. into_iter ( ) . map ( |ev| handler. handle_event ( ev) ) . collect :: < Vec < _ > > ( ) ;
1495
+ drop_handled_events_and_abort ! ( self , res, 0 , self . pending_peer_connected_events) ;
1496
+ }
1487
1497
1488
1498
self . pending_events_processor . store ( false , Ordering :: Release ) ;
1489
1499
}
0 commit comments