11use super :: { ConcurrentStream , Consumer , ConsumerState , IntoConcurrentStream } ;
2+ use crate :: future:: FutureGroup ;
23#[ cfg( all( feature = "alloc" , not( feature = "std" ) ) ) ]
34use alloc:: vec:: Vec ;
45use core:: future:: Future ;
56use core:: pin:: Pin ;
6- use futures_buffered:: FuturesUnordered ;
77use futures_lite:: StreamExt ;
88use pin_project:: pin_project;
99
@@ -44,14 +44,14 @@ impl<T, E> FromConcurrentStream<Result<T, E>> for Result<Vec<T>, E> {
4444#[ pin_project]
4545pub ( crate ) struct VecConsumer < ' a , Fut : Future > {
4646 #[ pin]
47- group : FuturesUnordered < Fut > ,
47+ group : FutureGroup < Fut > ,
4848 output : & ' a mut Vec < Fut :: Output > ,
4949}
5050
5151impl < ' a , Fut : Future > VecConsumer < ' a , Fut > {
5252 pub ( crate ) fn new ( output : & ' a mut Vec < Fut :: Output > ) -> Self {
5353 Self {
54- group : FuturesUnordered :: new ( ) ,
54+ group : FutureGroup :: new ( ) ,
5555 output,
5656 }
5757 }
6666 async fn send ( self : Pin < & mut Self > , future : Fut ) -> super :: ConsumerState {
6767 let mut this = self . project ( ) ;
6868 // unbounded concurrency, so we just goooo
69- this. group . as_mut ( ) . push ( future) ;
69+ this. group . as_mut ( ) . insert_pinned ( future) ;
7070 ConsumerState :: Continue
7171 }
7272
@@ -88,14 +88,14 @@ where
8888#[ pin_project]
8989pub ( crate ) struct ResultVecConsumer < ' a , Fut : Future , T , E > {
9090 #[ pin]
91- group : FuturesUnordered < Fut > ,
91+ group : FutureGroup < Fut > ,
9292 output : & ' a mut Result < Vec < T > , E > ,
9393}
9494
9595impl < ' a , Fut : Future , T , E > ResultVecConsumer < ' a , Fut , T , E > {
9696 pub ( crate ) fn new ( output : & ' a mut Result < Vec < T > , E > ) -> Self {
9797 Self {
98- group : FuturesUnordered :: new ( ) ,
98+ group : FutureGroup :: new ( ) ,
9999 output,
100100 }
101101 }
@@ -110,7 +110,7 @@ where
110110 async fn send ( self : Pin < & mut Self > , future : Fut ) -> super :: ConsumerState {
111111 let mut this = self . project ( ) ;
112112 // unbounded concurrency, so we just goooo
113- this. group . as_mut ( ) . push ( future) ;
113+ this. group . as_mut ( ) . insert_pinned ( future) ;
114114 ConsumerState :: Continue
115115 }
116116
0 commit comments