diff --git a/src/client.rs b/src/client.rs index f9a654c..7e24ba2 100644 --- a/src/client.rs +++ b/src/client.rs @@ -193,13 +193,13 @@ pub async fn play( } config.key_log = Arc::new(tokio_rustls::rustls::KeyLogFile::new()); let config = Arc::new(config); - for _i in 0..repeat { + for i in 0..repeat { for (conn_id, (server_name, records)) in records.iter() { let limiter = limiter.acquire().await.unwrap(); let connector = TlsConnector::from(config.clone()); tokio::spawn(async move { let mut running_guard = running.lock().await; - running_guard.insert(*conn_id); + running_guard.insert((i, *conn_id)); drop(running_guard); let server_name = ServerName::try_from(String::from_utf8(server_name.clone()).unwrap()) @@ -270,7 +270,7 @@ pub async fn play( println!("Client: {} / {}", cnt + 1, total); } let mut running_guard = running.lock().await; - running_guard.remove(conn_id); + running_guard.remove(&(i, *conn_id)); drop(running_guard); drop(limiter); }); @@ -285,12 +285,12 @@ pub async fn play( } } } else { - for _i in 0..repeat { + for i in 0..repeat { for (conn_id, (_server_name, records)) in records.iter() { let limiter = limiter.acquire().await.unwrap(); tokio::spawn(async move { let mut running_guard = running.lock().await; - running_guard.insert(*conn_id); + running_guard.insert((i, *conn_id)); drop(running_guard); let stream = TcpStream::connect(connect_to).await.unwrap(); let mut stream = crate::codec::StreamCodec::new(stream); @@ -354,7 +354,7 @@ pub async fn play( println!("Client: {} / {}", cnt, total); } let mut running_guard = running.lock().await; - running_guard.remove(conn_id); + running_guard.remove(&(i, *conn_id)); drop(running_guard); drop(limiter); });