diff options
author | Blaž Hrastnik | 2022-02-05 06:05:19 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-02-05 06:05:19 +0000 |
commit | 6ea477ab60e242c2cd66af32ece601a691fcec4b (patch) | |
tree | 1ba67327d6086d05f5d6c59db0bd0c4d5c9a0736 | |
parent | d3221b03a2b3ee5acc68066f34c4e56e2d05ce94 (diff) |
Don't use block_on in jobs.finish(), we can .await
-rw-r--r-- | helix-term/src/application.rs | 3 | ||||
-rw-r--r-- | helix-term/src/job.rs | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index ae154a24..8f405ce5 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -222,7 +222,6 @@ impl Application { loop { if self.editor.should_close() { - self.jobs.finish(); break; } @@ -666,6 +665,8 @@ impl Application { self.event_loop().await; + self.jobs.finish().await; + if self.editor.close_language_servers(None).await.is_err() { log::error!("Timed out waiting for language servers to shutdown"); }; diff --git a/helix-term/src/job.rs b/helix-term/src/job.rs index f5a0a425..a6a77021 100644 --- a/helix-term/src/job.rs +++ b/helix-term/src/job.rs @@ -93,8 +93,8 @@ impl Jobs { } /// Blocks until all the jobs that need to be waited on are done. - pub fn finish(&mut self) { + pub async fn finish(&mut self) { let wait_futures = std::mem::take(&mut self.wait_futures); - helix_lsp::block_on(wait_futures.for_each(|_| future::ready(()))); + wait_futures.for_each(|_| future::ready(())).await } } |