Fix tasks leaked despite workspace window close (#35246)
Closes https://github.com/zed-industries/zed/issues/34932 Release Notes: - Fixed tasks leaked despite workspace window close
This commit is contained in:
parent
11c7b498b3
commit
798aa50df8
3 changed files with 8 additions and 7 deletions
|
@ -73,7 +73,7 @@ impl Workspace {
|
|||
|
||||
if let Some(terminal_provider) = self.terminal_provider.as_ref() {
|
||||
let task_status = terminal_provider.spawn(spawn_in_terminal, window, cx);
|
||||
cx.background_spawn(async move {
|
||||
let task = cx.background_spawn(async move {
|
||||
match task_status.await {
|
||||
Some(Ok(status)) => {
|
||||
if status.success() {
|
||||
|
@ -82,11 +82,11 @@ impl Workspace {
|
|||
log::debug!("Task spawn failed, code: {:?}", status.code());
|
||||
}
|
||||
}
|
||||
Some(Err(e)) => log::error!("Task spawn failed: {e}"),
|
||||
Some(Err(e)) => log::error!("Task spawn failed: {e:#}"),
|
||||
None => log::debug!("Task spawn got cancelled"),
|
||||
}
|
||||
})
|
||||
.detach();
|
||||
});
|
||||
self.scheduled_tasks.push(task);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1104,6 +1104,7 @@ pub struct Workspace {
|
|||
serialized_ssh_project: Option<SerializedSshProject>,
|
||||
_items_serializer: Task<Result<()>>,
|
||||
session_id: Option<String>,
|
||||
scheduled_tasks: Vec<Task<()>>,
|
||||
}
|
||||
|
||||
impl EventEmitter<Event> for Workspace {}
|
||||
|
@ -1435,6 +1436,7 @@ impl Workspace {
|
|||
_items_serializer,
|
||||
session_id: Some(session_id),
|
||||
serialized_ssh_project: None,
|
||||
scheduled_tasks: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue