aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorEmil Lauridsen <[email protected]>2019-12-27 11:43:14 +0000
committerEmil Lauridsen <[email protected]>2019-12-27 11:43:14 +0000
commitc732f215cb31e9f022090b8d0212f6ea9c134c11 (patch)
tree431bee63fe79f253cdc1ec3a435efd78bc45f0e7 /crates
parented84c85aef859e97ab355e78bf77f435689f25b7 (diff)
Don't finish main cargo watch thread when subprocess finishes.
Diffstat (limited to 'crates')
-rw-r--r--crates/ra_cargo_watch/src/lib.rs3
-rw-r--r--crates/ra_lsp_server/src/main_loop.rs5
2 files changed, 5 insertions, 3 deletions
diff --git a/crates/ra_cargo_watch/src/lib.rs b/crates/ra_cargo_watch/src/lib.rs
index 11b624abf..d683d43d2 100644
--- a/crates/ra_cargo_watch/src/lib.rs
+++ b/crates/ra_cargo_watch/src/lib.rs
@@ -193,8 +193,7 @@ impl CheckWatcherState {
193 recv(self.watcher.message_recv) -> msg => match msg { 193 recv(self.watcher.message_recv) -> msg => match msg {
194 Ok(msg) => self.handle_message(msg, task_send), 194 Ok(msg) => self.handle_message(msg, task_send),
195 Err(RecvError) => { 195 Err(RecvError) => {
196 // Task channel has closed, so shut down 196 // Watcher finished, do nothing.
197 break;
198 }, 197 },
199 } 198 }
200 }; 199 };
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs
index e66b8f9eb..af1a487de 100644
--- a/crates/ra_lsp_server/src/main_loop.rs
+++ b/crates/ra_lsp_server/src/main_loop.rs
@@ -184,7 +184,10 @@ pub fn main_loop(
184 Err(RecvError) => Err("vfs died")?, 184 Err(RecvError) => Err("vfs died")?,
185 }, 185 },
186 recv(libdata_receiver) -> data => Event::Lib(data.unwrap()), 186 recv(libdata_receiver) -> data => Event::Lib(data.unwrap()),
187 recv(world_state.check_watcher.task_recv) -> task => Event::CheckWatcher(task.unwrap()) 187 recv(world_state.check_watcher.task_recv) -> task => match task {
188 Ok(task) => Event::CheckWatcher(task),
189 Err(RecvError) => Err("check watcher died")?,
190 }
188 }; 191 };
189 if let Event::Msg(Message::Request(req)) = &event { 192 if let Event::Msg(Message::Request(req)) = &event {
190 if connection.handle_shutdown(&req)? { 193 if connection.handle_shutdown(&req)? {