zeta: Compute diff on background thread (#22328)
@iamnbutler noticed slowness in assistant panel which I've pinned down to the fact that we're calculating buffer diff on foreground thread. This PR moves this computation into the background; I don't know much about Zeta but it seems fine to do, as the call-site is asynchronous anyways. Closes #ISSUE Release Notes: - N/A
This commit is contained in:
parent
fac5118f10
commit
bc32b4d016
1 changed files with 15 additions and 8 deletions
|
@ -298,14 +298,21 @@ impl Zeta {
|
|||
cx.spawn(|this, mut cx| async move {
|
||||
let request_sent_at = Instant::now();
|
||||
|
||||
let mut input_events = String::new();
|
||||
for event in events {
|
||||
if !input_events.is_empty() {
|
||||
input_events.push('\n');
|
||||
input_events.push('\n');
|
||||
}
|
||||
input_events.push_str(&event.to_prompt());
|
||||
}
|
||||
let input_events = cx
|
||||
.background_executor()
|
||||
.spawn(async move {
|
||||
let mut input_events = String::new();
|
||||
for event in events {
|
||||
if !input_events.is_empty() {
|
||||
input_events.push('\n');
|
||||
input_events.push('\n');
|
||||
}
|
||||
input_events.push_str(&event.to_prompt());
|
||||
}
|
||||
input_events
|
||||
})
|
||||
.await;
|
||||
|
||||
let input_excerpt = prompt_for_excerpt(&snapshot, &excerpt_range, offset);
|
||||
let input_outline = prompt_for_outline(&snapshot);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue