Fix Compositor concurrent initialization

It seems that initializing the compositor in a
different thread can cause issues in some environments.
This commit is contained in:
Héctor Ramón Jiménez 2025-04-02 20:33:22 +02:00
parent d203392c9d
commit 1b22d7d5fc
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
8 changed files with 37 additions and 14 deletions

View file

@ -12,6 +12,10 @@ impl crate::Executor for Executor {
fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
smol::spawn(future).detach();
}
fn block_on<T>(&self, future: impl Future<Output = T>) -> T {
smol::block_on(future)
}
}
pub mod time {

View file

@ -11,6 +11,10 @@ impl crate::Executor for Executor {
fn spawn(&self, future: impl Future<Output = ()> + Send + 'static) {
self.spawn_ok(future);
}
fn block_on<T>(&self, future: impl Future<Output = T>) -> T {
futures::executor::block_on(future)
}
}
pub mod time {

View file

@ -17,6 +17,10 @@ impl crate::Executor for Executor {
let _guard = tokio::runtime::Runtime::enter(self);
f()
}
fn block_on<T>(&self, future: impl Future<Output = T>) -> T {
self.block_on(future)
}
}
pub mod time {

View file

@ -11,6 +11,11 @@ impl crate::Executor for Executor {
}
fn spawn(&self, _future: impl Future<Output = ()> + MaybeSend + 'static) {}
#[cfg(not(target_arch = "wasm32"))]
fn block_on<T>(&self, _future: impl Future<Output = T>) -> T {
unimplemented!()
}
}
pub mod time {