From c463c0787156fe0acd40364c5f68af57c04f1cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 19 Aug 2024 10:02:36 +0300 Subject: [PATCH] examples: glupload: Fix compilation with Rust < 1.72 on Windows The event proxy on Windows is only `Sync` if the contained `Sender` is, but until Rust 1.72 it was not. Part-of: --- examples/src/glupload.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/src/glupload.rs b/examples/src/glupload.rs index 9d64b3117..d71dbeab1 100644 --- a/examples/src/glupload.rs +++ b/examples/src/glupload.rs @@ -11,6 +11,7 @@ use std::{ mem, num::NonZeroU32, ptr, + sync::Mutex, }; use anyhow::{Context, Result}; @@ -477,7 +478,9 @@ impl App { .context("Couldn't wrap GL context")?; let gl_context = shared_context.clone(); - let event_proxy = event_loop.create_proxy(); + // FIXME: Once MSRV is 1.72 the Mutex is not necessary anymore because + // std::sync::mpsc::Sender is Sync by itself + let event_proxy = Mutex::new(event_loop.create_proxy()); #[allow(clippy::single_match)] bus.set_sync_handler(move |_, msg| { @@ -510,7 +513,7 @@ impl App { _ => (), } - if let Err(e) = event_proxy.send_event(Message::BusEvent) { + if let Err(e) = event_proxy.lock().unwrap().send_event(Message::BusEvent) { eprintln!("Failed to send BusEvent to event proxy: {e}") }