aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaž Hrastnik2022-02-05 06:05:19 +0000
committerBlaž Hrastnik2022-02-05 06:05:19 +0000
commit6ea477ab60e242c2cd66af32ece601a691fcec4b (patch)
tree1ba67327d6086d05f5d6c59db0bd0c4d5c9a0736
parentd3221b03a2b3ee5acc68066f34c4e56e2d05ce94 (diff)
Don't use block_on in jobs.finish(), we can .await
-rw-r--r--helix-term/src/application.rs3
-rw-r--r--helix-term/src/job.rs4
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
}
}