Merge pull request #2366 from zed-industries/avoid-unwrapping-on-try-send

Don't panic if worktree was dropped before sending path changes
This commit is contained in:
Antonio Scandurra 2023-04-10 08:36:53 +02:00 committed by GitHub
commit 116d4f20fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -838,8 +838,7 @@ impl LocalWorktree {
.unwrap() .unwrap()
.path_changes_tx .path_changes_tx
.try_send((vec![abs_path], tx)) .try_send((vec![abs_path], tx))
.unwrap(); })?;
});
rx.recv().await; rx.recv().await;
Ok(()) Ok(())
})) }))
@ -930,7 +929,7 @@ impl LocalWorktree {
} }
let (tx, mut rx) = barrier::channel(); let (tx, mut rx) = barrier::channel();
path_changes_tx.try_send((paths, tx)).unwrap(); path_changes_tx.try_send((paths, tx))?;
rx.recv().await; rx.recv().await;
this.upgrade(&cx) this.upgrade(&cx)
.ok_or_else(|| anyhow!("worktree was dropped"))? .ok_or_else(|| anyhow!("worktree was dropped"))?