mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-12 21:32:40 +00:00
Avoid holding strong handle to Channel in long-lived task
This commit is contained in:
parent
5a4ba7f551
commit
680b86b17c
1 changed files with 4 additions and 3 deletions
|
@ -88,12 +88,12 @@ impl ChannelList {
|
|||
rpc: Arc<rpc::Client>,
|
||||
cx: &mut ModelContext<Self>,
|
||||
) -> Self {
|
||||
let _task = cx.spawn(|this, mut cx| {
|
||||
let _task = cx.spawn_weak(|this, mut cx| {
|
||||
let rpc = rpc.clone();
|
||||
async move {
|
||||
let mut status = rpc.status();
|
||||
loop {
|
||||
match status.recv().await.unwrap() {
|
||||
while let Some((status, this)) = status.recv().await.zip(this.upgrade(&cx)) {
|
||||
match status {
|
||||
rpc::Status::Connected { .. } => {
|
||||
let response = rpc
|
||||
.request(proto::GetChannels {})
|
||||
|
@ -128,6 +128,7 @@ impl ChannelList {
|
|||
_ => {}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
.log_err()
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue