Improve logging when there is an error in the RPC layer

Co-Authored-By: Max Brunsfeld <max@zed.dev>
This commit is contained in:
Antonio Scandurra 2021-07-07 19:36:53 +02:00
parent d0660f41de
commit 024684e46c
2 changed files with 15 additions and 3 deletions

View file

@ -113,7 +113,13 @@ impl Client {
async_tungstenite::client_async(format!("wss://{}/rpc", host), stream).await?;
log::info!("connected to rpc address {}", &*ZED_SERVER_URL);
let (connection_id, handler) = self.peer.add_connection(stream).await;
executor.spawn(handler.run()).detach();
executor
.spawn(async move {
if let Err(error) = handler.run().await {
log::error!("connection error: {:?}", error);
}
})
.detach();
connection_id
} else if let Some(host) = server_url.strip_prefix("http://") {
let stream = smol::net::TcpStream::connect(host).await?;
@ -121,7 +127,13 @@ impl Client {
async_tungstenite::client_async(format!("ws://{}/rpc", host), stream).await?;
log::info!("connected to rpc address {}", &*ZED_SERVER_URL);
let (connection_id, handler) = self.peer.add_connection(stream).await;
executor.spawn(handler.run()).detach();
executor
.spawn(async move {
if let Err(error) = handler.run().await {
log::error!("connection error: {:?}", error);
}
})
.detach();
connection_id
} else {
return Err(anyhow!("invalid server url: {}", server_url))?;

View file

@ -705,7 +705,7 @@ impl Workspace {
cx.spawn(|_, _| async move {
if let Err(e) = task.await {
log::error!("sharing failed: {}", e);
log::error!("sharing failed: {:?}", e);
}
})
.detach();