From 12f28f6276bbf1d1a19a553c7352bcb974361247 Mon Sep 17 00:00:00 2001 From: Roberto Vidal Date: Mon, 15 Apr 2019 21:41:27 +0200 Subject: Adds "restart server" command --- crates/gen_lsp_server/src/stdio.rs | 8 +++----- crates/ra_lsp_server/src/main.rs | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) (limited to 'crates') diff --git a/crates/gen_lsp_server/src/stdio.rs b/crates/gen_lsp_server/src/stdio.rs index dab2d8da8..c5fe5b83a 100644 --- a/crates/gen_lsp_server/src/stdio.rs +++ b/crates/gen_lsp_server/src/stdio.rs @@ -37,11 +37,9 @@ pub struct Threads { } impl Threads { - pub fn join(self) -> Result<()> { - match self.reader.join() { - Ok(r) => r?, - Err(_) => bail!("reader panicked"), - } + pub fn exit(self) -> Result<()> { + // We can't rely on stdin being closed + drop(self.reader); match self.writer.join() { Ok(r) => r, Err(_) => bail!("writer panicked"), diff --git a/crates/ra_lsp_server/src/main.rs b/crates/ra_lsp_server/src/main.rs index b0b70df5c..6b1274a3b 100644 --- a/crates/ra_lsp_server/src/main.rs +++ b/crates/ra_lsp_server/src/main.rs @@ -54,7 +54,7 @@ fn main_inner() -> Result<()> { ra_lsp_server::main_loop(workspace_roots, opts, r, s) })?; log::info!("shutting down IO..."); - threads.join()?; + threads.exit()?; log::info!("... IO is down"); Ok(()) } -- cgit v1.2.3