@@ -1479,11 +1479,21 @@ where
14791479 pending_peer_connected_events. shrink_to ( 10 ) ; // Limit total heap usage
14801480 }
14811481
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+ } ;
14841489
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+ }
14871497
14881498 self . pending_events_processor . store ( false , Ordering :: Release ) ;
14891499 }
0 commit comments