Skip to content

Commit a1b1a28

Browse files
committed
Give all threads names
1 parent 838523d commit a1b1a28

File tree

4 files changed

+31
-29
lines changed

4 files changed

+31
-29
lines changed

crates/flycheck/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ impl CommandHandle {
494494
let (sender, receiver) = unbounded();
495495
let actor = CargoActor::new(sender, stdout, stderr);
496496
let thread = stdx::thread::Builder::new(stdx::thread::ThreadIntent::Worker)
497-
.name("CargoHandle".to_owned())
497+
.name("CommandHandle".to_owned())
498498
.spawn(move || actor.run())
499499
.expect("failed to spawn thread");
500500
Ok(CommandHandle { program, arguments, current_dir, child, thread, receiver })

crates/ide/src/prime_caches.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ pub(crate) fn parallel_prime_caches(
8383

8484
stdx::thread::Builder::new(stdx::thread::ThreadIntent::Worker)
8585
.allow_leak(true)
86+
.name("PrimeCaches".to_owned())
8687
.spawn(move || Cancelled::catch(|| worker(db)))
8788
.expect("failed to spawn thread");
8889
}

crates/rust-analyzer/src/handlers/notification.rs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,18 +90,13 @@ pub(crate) fn handle_did_change_text_document(
9090
let _p = tracing::span!(tracing::Level::INFO, "handle_did_change_text_document").entered();
9191

9292
if let Ok(path) = from_proto::vfs_path(&params.text_document.uri) {
93-
let data = match state.mem_docs.get_mut(&path) {
94-
Some(doc) => {
95-
// The version passed in DidChangeTextDocument is the version after all edits are applied
96-
// so we should apply it before the vfs is notified.
97-
doc.version = params.text_document.version;
98-
&mut doc.data
99-
}
100-
None => {
101-
tracing::error!("unexpected DidChangeTextDocument: {}", path);
102-
return Ok(());
103-
}
93+
let Some(DocumentData { version, data }) = state.mem_docs.get_mut(&path) else {
94+
tracing::error!("unexpected DidChangeTextDocument: {}", path);
95+
return Ok(());
10496
};
97+
// The version passed in DidChangeTextDocument is the version after all edits are applied
98+
// so we should apply it before the vfs is notified.
99+
*version = params.text_document.version;
105100

106101
let new_contents = apply_document_changes(
107102
state.config.position_encoding(),

lib/lsp-server/src/stdio.rs

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,33 @@ use crate::Message;
1212
/// Creates an LSP connection via stdio.
1313
pub(crate) fn stdio_transport() -> (Sender<Message>, Receiver<Message>, IoThreads) {
1414
let (writer_sender, writer_receiver) = bounded::<Message>(0);
15-
let writer = thread::spawn(move || {
16-
let stdout = stdout();
17-
let mut stdout = stdout.lock();
18-
writer_receiver.into_iter().try_for_each(|it| it.write(&mut stdout))
19-
});
15+
let writer = thread::Builder::new()
16+
.name("LspServerWriter".to_owned())
17+
.spawn(move || {
18+
let stdout = stdout();
19+
let mut stdout = stdout.lock();
20+
writer_receiver.into_iter().try_for_each(|it| it.write(&mut stdout))
21+
})
22+
.unwrap();
2023
let (reader_sender, reader_receiver) = bounded::<Message>(0);
21-
let reader = thread::spawn(move || {
22-
let stdin = stdin();
23-
let mut stdin = stdin.lock();
24-
while let Some(msg) = Message::read(&mut stdin)? {
25-
let is_exit = matches!(&msg, Message::Notification(n) if n.is_exit());
24+
let reader = thread::Builder::new()
25+
.name("LspServerReader".to_owned())
26+
.spawn(move || {
27+
let stdin = stdin();
28+
let mut stdin = stdin.lock();
29+
while let Some(msg) = Message::read(&mut stdin)? {
30+
let is_exit = matches!(&msg, Message::Notification(n) if n.is_exit());
2631

27-
debug!("sending message {:#?}", msg);
28-
reader_sender.send(msg).expect("receiver was dropped, failed to send a message");
32+
debug!("sending message {:#?}", msg);
33+
reader_sender.send(msg).expect("receiver was dropped, failed to send a message");
2934

30-
if is_exit {
31-
break;
35+
if is_exit {
36+
break;
37+
}
3238
}
33-
}
34-
Ok(())
35-
});
39+
Ok(())
40+
})
41+
.unwrap();
3642
let threads = IoThreads { reader, writer };
3743
(writer_sender, reader_receiver, threads)
3844
}

0 commit comments

Comments
 (0)