Replace flume dependency

This commit is contained in:
Patrick Förster 2023-04-11 21:16:07 +02:00
parent eebfda7bf0
commit 306838c791
3 changed files with 9 additions and 90 deletions

66
Cargo.lock generated
View file

@ -578,19 +578,6 @@ dependencies = [
"miniz_oxide",
]
[[package]]
name = "flume"
version = "0.10.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
dependencies = [
"futures-core",
"futures-sink",
"nanorand",
"pin-project",
"spin",
]
[[package]]
name = "fnv"
version = "1.0.7"
@ -615,18 +602,6 @@ dependencies = [
"libc",
]
[[package]]
name = "futures-core"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
[[package]]
name = "futures-sink"
version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
[[package]]
name = "fuzzy-matcher"
version = "0.3.7"
@ -653,10 +628,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
dependencies = [
"cfg-if",
"js-sys",
"libc",
"wasi",
"wasm-bindgen",
]
[[package]]
@ -1020,15 +993,6 @@ dependencies = [
"windows-sys 0.45.0",
]
[[package]]
name = "nanorand"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
dependencies = [
"getrandom",
]
[[package]]
name = "notify"
version = "5.1.0"
@ -1217,26 +1181,6 @@ dependencies = [
"siphasher",
]
[[package]]
name = "pin-project"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "plotters"
version = "0.3.4"
@ -1519,15 +1463,6 @@ dependencies = [
"serde",
]
[[package]]
name = "spin"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
"lock_api",
]
[[package]]
name = "strsim"
version = "0.10.0"
@ -1595,7 +1530,6 @@ dependencies = [
"encoding_rs_io",
"fern",
"flate2",
"flume",
"fuzzy-matcher",
"human_name",
"insta",

View file

@ -43,7 +43,6 @@ encoding_rs = "0.8.32"
encoding_rs_io = "0.1.7"
fern = "0.6.2"
flate2 = "1.0.25"
flume = "0.10.14"
fuzzy-matcher = { version = "0.3.7", features = ["compact"] }
human_name = { version = "2.0.1", default-features = false }
itertools = "0.10.5"

View file

@ -113,30 +113,16 @@ impl Command {
}
};
let (line_sender, line_receiver) = flume::unbounded();
let (exit_sender, exit_receiver) = flume::unbounded();
track_output(process.stderr.take().unwrap(), line_sender.clone());
track_output(process.stdout.take().unwrap(), line_sender);
let (sender, receiver) = crossbeam_channel::unbounded();
track_output(process.stderr.take().unwrap(), sender.clone());
track_output(process.stdout.take().unwrap(), sender.clone());
let client = self.client.clone();
let handle = std::thread::spawn(move || {
let typ = lsp_types::MessageType::LOG;
loop {
let done = flume::Selector::new()
.recv(&line_receiver, |line| match line {
Ok(message) => {
let params = LogMessageParams { message, typ };
let _ = client.send_notification::<LogMessage>(params);
false
}
Err(_) => true,
})
.recv(&exit_receiver, |_| true)
.wait();
if done {
break;
}
while let Ok(Some(message)) = receiver.recv() {
let params = LogMessageParams { message, typ };
let _ = client.send_notification::<LogMessage>(params);
}
});
@ -148,7 +134,7 @@ impl Command {
}
});
let _ = exit_sender.send(());
let _ = sender.send(None);
handle.join().unwrap();
drop(reporter);
@ -158,7 +144,7 @@ impl Command {
fn track_output(
output: impl Read + Send + 'static,
sender: flume::Sender<String>,
sender: crossbeam_channel::Sender<Option<String>>,
) -> JoinHandle<()> {
let reader = BufReader::new(
DecodeReaderBytesBuilder::new()
@ -172,7 +158,7 @@ fn track_output(
let _ = reader
.lines()
.flatten()
.try_for_each(|line| sender.send(line));
.try_for_each(|line| sender.send(Some(line)));
})
}