diff --git a/zed/src/rpc_client.rs b/zed/src/rpc_client.rs index 69d041104f92e902b47cae26efb61b1b072b918d..2f6849e3daa7ac0d5d9dfcfc90acbbdee1c0bb03 100644 --- a/zed/src/rpc_client.rs +++ b/zed/src/rpc_client.rs @@ -60,13 +60,15 @@ where Mutex, bool)>>, >, ) { + let dropped = drop_rx.recv(); + smol::pin!(dropped); + let mut stream = MessageStream::new(conn); loop { let read_message = stream.read_message::(); - let dropped = drop_rx.recv(); - smol::pin!(read_message, dropped); + smol::pin!(read_message); - match futures::future::select(&mut read_message, &mut dropped).await { + match futures::future::select(read_message, &mut dropped).await { Either::Left((Ok(incoming), _)) => { if let Some(variant) = incoming.variant { if let Some(request_id) = incoming.request_id {