Detailed changes
@@ -38,16 +38,18 @@ impl<T> Receiver<T> {
impl<T: 'static + Clone> Receiver<T> {
pub fn notify_model_on_change<M: 'static + Entity>(&self, ctx: &mut ModelContext<M>) {
let watch = self.clone();
- let _ = ctx.spawn(async move { watch.updated().await }, |_, _, ctx| {
+ ctx.spawn(async move { watch.updated().await }, |_, _, ctx| {
ctx.notify()
- });
+ })
+ .detach();
}
pub fn notify_view_on_change<V: 'static + View>(&self, ctx: &mut ViewContext<V>) {
let watch = self.clone();
- let _ = ctx.spawn(async move { watch.updated().await }, |_, _, ctx| {
+ ctx.spawn(async move { watch.updated().await }, |_, _, ctx| {
ctx.notify()
- });
+ })
+ .detach();
}
}
@@ -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();
}
}
}