Update old usages of ctx.spawn to detach the associated task
This lets us open buffers and renders tabs and editors correctly, modulo a small bug when rendering the gutter that I am going to fix next.
This commit is contained in:
@@ -161,29 +161,32 @@ impl Workspace {
|
||||
|
||||
let (mut tx, rx) = watch::channel(None);
|
||||
self.items.insert(entry, OpenedItem::Loading(rx));
|
||||
let _ = ctx.spawn(
|
||||
ctx.spawn(
|
||||
buffer,
|
||||
move |me, buffer: anyhow::Result<Buffer>, ctx| match buffer {
|
||||
Ok(buffer) => {
|
||||
let handle = Box::new(ctx.add_model(|_| buffer)) as Box<dyn ItemHandle>;
|
||||
me.items.insert(entry, OpenedItem::Loaded(handle.clone()));
|
||||
let _ = ctx.spawn(
|
||||
ctx.spawn(
|
||||
async move {
|
||||
tx.update(|value| *value = Some(Ok(handle))).await;
|
||||
},
|
||||
|_, _, _| {},
|
||||
);
|
||||
)
|
||||
.detach();
|
||||
}
|
||||
Err(error) => {
|
||||
let _ = ctx.spawn(
|
||||
ctx.spawn(
|
||||
async move {
|
||||
tx.update(|value| *value = Some(Err(Arc::new(error)))).await;
|
||||
},
|
||||
|_, _, _| {},
|
||||
);
|
||||
)
|
||||
.detach();
|
||||
}
|
||||
},
|
||||
);
|
||||
)
|
||||
.detach();
|
||||
|
||||
self.open_entry(entry, ctx)
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ impl WorkspaceView {
|
||||
Err(error) => error!("{}", error),
|
||||
Ok(item) => {
|
||||
let settings = self.settings.clone();
|
||||
let _ = ctx.spawn(item, move |me, item, ctx| {
|
||||
ctx.spawn(item, move |me, item, ctx| {
|
||||
me.loading_entries.remove(&entry);
|
||||
match item {
|
||||
Ok(item) => {
|
||||
@@ -187,7 +187,8 @@ impl WorkspaceView {
|
||||
error!("{}", error);
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
.detach();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user