summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-view/src/document.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs
index fe081442..86a1d6d2 100644
--- a/helix-view/src/document.rs
+++ b/helix-view/src/document.rs
@@ -13,6 +13,7 @@ use std::future::Future;
use std::path::{Path, PathBuf};
use std::str::FromStr;
use std::sync::Arc;
+use tokio::sync::mpsc::error::TryRecvError;
use tokio::sync::mpsc::{UnboundedReceiver, UnboundedSender};
use tokio::sync::Mutex;
@@ -662,7 +663,16 @@ impl Document {
let save_req = if block {
rx.recv().await
} else {
- rx.try_recv().ok()
+ let msg = rx.try_recv();
+
+ if let Err(err) = msg {
+ match err {
+ TryRecvError::Empty => return None,
+ TryRecvError::Disconnected => None,
+ }
+ } else {
+ msg.ok()
+ }
};
let save = match save_req {