From 57a9e97dcab66c9f13331280335841b3d098b0b5 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Thu, 11 Nov 2021 03:20:55 -0500 Subject: switch to futures-lite --- src/history.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/history.rs') diff --git a/src/history.rs b/src/history.rs index 3586a3c..50e5ca7 100644 --- a/src/history.rs +++ b/src/history.rs @@ -34,12 +34,16 @@ impl History { let task_action = self.action.clone(); async_std::task::spawn(async move { loop { + enum Res { + Read(Result), + Write(Result, async_std::channel::RecvError>), + } let mut buf = [0_u8; 4096]; let mut pty = child.pty(); - let read = pty.read(&mut buf); - let write = input_r.recv(); - match futures::future::select(read, write).await { - futures::future::Either::Left((res, _)) => { + let read = async { Res::Read(pty.read(&mut buf).await) }; + let write = async { Res::Write(input_r.recv().await) }; + match futures_lite::future::race(read, write).await { + Res::Read(res) => { match res { Ok(bytes) => { task_entry @@ -67,7 +71,7 @@ impl History { .await .unwrap(); } - futures::future::Either::Right((res, _)) => match res { + Res::Write(res) => match res { Ok(bytes) => { pty.write(&bytes).await.unwrap(); } -- cgit v1.2.3-54-g00ecf