Skip to content

Commit 9731fa9

Browse files
committed
Use select_biased
1 parent cb1c7b3 commit 9731fa9

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

crates/rust-analyzer/src/flycheck.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
44
use std::{fmt, io, process::Command, time::Duration};
55

6-
use crossbeam_channel::{never, select, unbounded, Receiver, Sender};
6+
use crossbeam_channel::{select_biased, unbounded, Receiver, Sender};
77
use paths::{AbsPath, AbsPathBuf, Utf8PathBuf};
88
use rustc_hash::FxHashMap;
99
use serde::Deserialize;
@@ -260,13 +260,14 @@ impl FlycheckActor {
260260
}
261261

262262
fn next_event(&self, inbox: &Receiver<StateChange>) -> Option<Event> {
263-
if let Ok(msg) = inbox.try_recv() {
264-
// give restarts a preference so check outputs don't block a restart or stop
265-
return Some(Event::RequestStateChange(msg));
266-
}
267-
select! {
263+
let Some(command_receiver) = &self.command_receiver else {
264+
return inbox.recv().ok().map(Event::RequestStateChange);
265+
};
266+
267+
// Biased to give restarts a preference so check outputs don't block a restart or stop
268+
select_biased! {
268269
recv(inbox) -> msg => msg.ok().map(Event::RequestStateChange),
269-
recv(self.command_receiver.as_ref().unwrap_or(&never())) -> msg => Some(Event::CheckEvent(msg.ok())),
270+
recv(command_receiver) -> msg => Some(Event::CheckEvent(msg.ok())),
270271
}
271272
}
272273

0 commit comments

Comments
 (0)