From effc1eae8be338ea949058cc89c39950c25858c5 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 30 Dec 2018 23:02:26 +0300 Subject: migrate gen-lsp-server to new crossbeam --- crates/gen_lsp_server/src/stdio.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'crates/gen_lsp_server/src/stdio.rs') diff --git a/crates/gen_lsp_server/src/stdio.rs b/crates/gen_lsp_server/src/stdio.rs index 35d8e46d0..5c8e33854 100644 --- a/crates/gen_lsp_server/src/stdio.rs +++ b/crates/gen_lsp_server/src/stdio.rs @@ -9,11 +9,13 @@ use failure::bail; use crate::{RawMessage, Result}; pub fn stdio_transport() -> (Receiver, Sender, Threads) { - let (writer_sender, mut writer_receiver) = bounded::(16); + let (writer_sender, writer_receiver) = bounded::(16); let writer = thread::spawn(move || { let stdout = stdout(); let mut stdout = stdout.lock(); - writer_receiver.try_for_each(|it| it.write(&mut stdout))?; + writer_receiver + .into_iter() + .try_for_each(|it| it.write(&mut stdout))?; Ok(()) }); let (reader_sender, reader_receiver) = bounded::(16); @@ -21,7 +23,9 @@ pub fn stdio_transport() -> (Receiver, Sender, Threads) let stdin = stdin(); let mut stdin = stdin.lock(); while let Some(msg) = RawMessage::read(&mut stdin)? { - reader_sender.send(msg); + if let Err(_) = reader_sender.send(msg) { + break; + } } Ok(()) }); -- cgit v1.2.3