Don't panic if worktree was dropped before sending path changes
In `refresh_entry`, we send a message to the `self.path_changes_tx` channel to notify the background thread that a path has changed. However, given that `refresh_entry` uses `spawn_weak`, the worktree could get dropped before sending the message, which could cause a panic. This commit changes the code to return an error instead of panicking.
This commit is contained in:
parent
035189a2a1
commit
372e31d54f
1 changed files with 2 additions and 3 deletions
|
@ -838,8 +838,7 @@ impl LocalWorktree {
|
|||
.unwrap()
|
||||
.path_changes_tx
|
||||
.try_send((vec![abs_path], tx))
|
||||
.unwrap();
|
||||
});
|
||||
})?;
|
||||
rx.recv().await;
|
||||
Ok(())
|
||||
}))
|
||||
|
@ -930,7 +929,7 @@ impl LocalWorktree {
|
|||
}
|
||||
|
||||
let (tx, mut rx) = barrier::channel();
|
||||
path_changes_tx.try_send((paths, tx)).unwrap();
|
||||
path_changes_tx.try_send((paths, tx))?;
|
||||
rx.recv().await;
|
||||
this.upgrade(&cx)
|
||||
.ok_or_else(|| anyhow!("worktree was dropped"))?
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue