Skip to content

Commit 25154e0

Browse files
michalmuskalafacebook-github-bot
authored andcommitted
Gracefully fail sending progress end
Summary: It can happen during shutdown that there's some race condition and the main thread's receiving end is dropped before this code runs. Not crashing here makes the exit cleaner and error message more readable Reviewed By: robertoaloi Differential Revision: D58285304 fbshipit-source-id: e7cd7225de2d448d649ea12b172daa88411ef66e
1 parent ed3077e commit 25154e0

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

crates/elp/src/server/progress.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99

1010
use crossbeam_channel::Receiver;
11+
use crossbeam_channel::SendError;
1112
use crossbeam_channel::Sender;
1213
use lsp_types::NumberOrString;
1314
use lsp_types::ProgressParams;
@@ -161,5 +162,7 @@ fn send_progress(sender: &Sender<ProgressTask>, token: NumberOrString, msg: Work
161162
token,
162163
value: ProgressParamsValue::WorkDone(msg),
163164
};
164-
sender.send(ProgressTask::Notify(params)).unwrap();
165+
if let Err(SendError(err)) = sender.send(ProgressTask::Notify(params)) {
166+
log::error!("Failed to send progress message: {:?}", err);
167+
}
165168
}

0 commit comments

Comments
 (0)