summaryrefslogtreecommitdiffstats
path: root/winit/src/application.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-04 14:25:04 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-04 15:21:07 +0200
commitf1ec0af5070fe2752967cdc38ed66b8b70882366 (patch)
tree7bf1d4ce9c761b94a5dc7c40b265f62afb24fedf /winit/src/application.rs
parente24f26c28f09916f04f536a52368dcd1a4f34ed4 (diff)
downloadiced-f1ec0af5070fe2752967cdc38ed66b8b70882366.tar.gz
iced-f1ec0af5070fe2752967cdc38ed66b8b70882366.tar.bz2
iced-f1ec0af5070fe2752967cdc38ed66b8b70882366.zip
Run `system::information` in a different thread
... since it seems it can block for a couple of seconds.
Diffstat (limited to 'winit/src/application.rs')
-rw-r--r--winit/src/application.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 421ae398..90b03d56 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -583,14 +583,19 @@ pub fn run_command<Message: 'static + std::fmt::Debug + Send, E: Executor>(
system::Action::QueryInformation(_tag) => {
#[cfg(feature = "system")]
{
- let information =
- crate::system::information(_graphics_info());
+ let graphics_info = _graphics_info();
+ let proxy = proxy.clone();
- let message = _tag(information);
+ let _ = std::thread::spawn(move || {
+ let information =
+ crate::system::information(graphics_info);
- proxy
- .send_event(message)
- .expect("Send message to event loop");
+ let message = _tag(information);
+
+ proxy
+ .send_event(message)
+ .expect("Send message to event loop")
+ });
}
}
},