diff --git a/examples/connect-tcp.rs b/examples/connect-tcp.rs index 840de71e2..e37c2a7db 100644 --- a/examples/connect-tcp.rs +++ b/examples/connect-tcp.rs @@ -64,8 +64,10 @@ pub async fn connect( }) .map(Ok); - match future::join(sink.send_all(&mut stdin), stdout.send_all(&mut stream)).await { - (Err(e), _) | (_, Err(e)) => Err(e.into()), - _ => Ok(()), + tokio::select! { + r = sink.send_all(&mut stdin) => r?, + r = stdout.send_all(&mut stream) => r?, } + + Ok(()) } diff --git a/examples/connect-udp.rs b/examples/connect-udp.rs index f3db96128..0841b07eb 100644 --- a/examples/connect-udp.rs +++ b/examples/connect-udp.rs @@ -59,7 +59,10 @@ pub async fn connect( let socket = UdpSocket::bind(&bind_addr).await?; socket.connect(addr).await?; - tokio::try_join!(send(stdin, &socket), recv(stdout, &socket))?; + tokio::select! { + r = send(stdin, &socket) => r?, + r = recv(stdout, &socket) => r?, + } Ok(()) }