Flush effects after every spawned future completes

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
This commit is contained in:
Max Brunsfeld 2022-01-21 17:43:24 -08:00
parent 34e42c0c5f
commit f1fc0bde99

View file

@ -1653,8 +1653,13 @@ impl MutableAppContext {
Fut: 'static + Future<Output = T>,
T: 'static,
{
let future = f(self.to_async());
let cx = self.to_async();
self.foreground.spawn(f(cx))
self.foreground.spawn(async move {
let result = future.await;
cx.0.borrow_mut().flush_effects();
result
})
}
pub fn to_async(&self) -> AsyncAppContext {