File tree Expand file tree Collapse file tree 2 files changed +6
-4
lines changed Expand file tree Collapse file tree 2 files changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -136,6 +136,7 @@ features = [
136136[dev-dependencies ]
137137tokio-test = { version = " 0.4.0" , path = " ../tokio-test" }
138138tokio-stream = { version = " 0.1" , path = " ../tokio-stream" }
139+ tokio-util = { version = " 0.7" , path = " ../tokio-util" , features = [" rt" ] }
139140futures = { version = " 0.3.0" , features = [" async-await" ] }
140141mockall = " 0.13.0"
141142async-stream = " 0.3"
Original file line number Diff line number Diff line change @@ -10,8 +10,8 @@ use tempfile::NamedTempFile;
1010use tokio:: {
1111 fs:: OpenOptions ,
1212 runtime:: { Builder , Runtime } ,
13- task:: JoinSet ,
1413} ;
14+ use tokio_util:: task:: TaskTracker ;
1515
1616fn multi_rt ( n : usize ) -> Box < dyn Fn ( ) -> Runtime > {
1717 Box :: new ( move || {
@@ -85,15 +85,16 @@ fn open_many_files() {
8585 let ( _tmp_files, paths) : ( Vec < NamedTempFile > , Vec < PathBuf > ) = create_tmp_files ( NUM_FILES ) ;
8686
8787 rt. block_on ( async move {
88- let mut set = JoinSet :: new ( ) ;
88+ let tracker = TaskTracker :: new ( ) ;
8989
9090 for i in 0 ..10_000 {
9191 let path = paths. get ( i % NUM_FILES ) . unwrap ( ) . clone ( ) ;
92- set . spawn ( async move {
92+ tracker . spawn ( async move {
9393 let _file = OpenOptions :: new ( ) . read ( true ) . open ( path) . await . unwrap ( ) ;
9494 } ) ;
9595 }
96- while let Some ( Ok ( _) ) = set. join_next ( ) . await { }
96+ tracker. close ( ) ;
97+ tracker. wait ( ) . await ;
9798 } ) ;
9899 }
99100
You can’t perform that action at this time.
0 commit comments