on master help sign in
don't panic on defunct lsp process (#583)
ed8c3e6Timothy DeHerrera
helix-lsp/src/transport.rs+14−6
@@ -222,10 +222,13 @@ impl Transport {
222 loop {
222 loop {
223 match Self::recv_server_message(&mut server_stdout, &mut recv_buffer).await {
223 match Self::recv_server_message(&mut server_stdout, &mut recv_buffer).await {
224 Ok(msg) => {
224 Ok(msg) => {
225− transport
226− .process_server_message(&client_tx, msg)
225+ match transport.process_server_message(&client_tx, msg).await {
227− .await
226+ Ok(_) => {}
228− .unwrap();
227+ Err(err) => {
228+ error!("err: <- {:?}", err);
229+ break;
230+ }
231+ };
229 }
232 }
230 Err(err) => {
233 Err(err) => {
231 error!("err: <- {:?}", err);
234 error!("err: <- {:?}", err);
@@ -254,10 +257,15 @@ impl Transport {
254 mut client_rx: UnboundedReceiver<Payload>,
257 mut client_rx: UnboundedReceiver<Payload>,
255 ) {
258 ) {
256 while let Some(msg) = client_rx.recv().await {
259 while let Some(msg) = client_rx.recv().await {
257− transport
260+ match transport
258 .send_payload_to_server(&mut server_stdin, msg)
261 .send_payload_to_server(&mut server_stdin, msg)
259 .await
262 .await
260− .unwrap()
263+ {
264+ Ok(_) => {}
265+ Err(err) => {
266+ error!("err: <- {:?}", err);
267+ }
268+ }
261 }
269 }
262 }
270 }
263}
271}