Ensure project is still alive by the time remote LSP request starts

This commit is contained in:
Antonio Scandurra 2023-04-11 15:14:32 +02:00
parent 5898600239
commit 5e37c893c2

View File

@ -4210,7 +4210,13 @@ impl Project {
let rpc = self.client.clone();
let message = request.to_proto(project_id, buffer);
return cx.spawn_weak(|this, cx| async move {
// Ensure the project is still alive by the time the task
// is scheduled.
this.upgrade(&cx)
.ok_or_else(|| anyhow!("project dropped"))?;
let response = rpc.request(message).await?;
let this = this
.upgrade(&cx)
.ok_or_else(|| anyhow!("project dropped"))?;