From e8dd90a44495ffd1612c4d34c448a3a7ba5986a1 Mon Sep 17 00:00:00 2001 From: John Nunley Date: Sun, 19 May 2024 16:26:34 -0700 Subject: [PATCH] m: Mark orbital as send/sync @jackpot51 confirmed in chat that Orbital's types should be thread-safe. Signed-off-by: John Nunley --- src/backends/orbital.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/backends/orbital.rs b/src/backends/orbital.rs index 7fb5c16..96c3db1 100644 --- a/src/backends/orbital.rs +++ b/src/backends/orbital.rs @@ -56,7 +56,7 @@ impl Drop for OrbitalMap { } pub struct OrbitalImpl { - handle: OrbitalWindowHandle, + handle: ThreadSafeWindowHandle, width: u32, height: u32, presented: bool, @@ -64,9 +64,13 @@ pub struct OrbitalImpl { _display: PhantomData, } +struct ThreadSafeWindowHandle(OrbitalWindowHandle); +unsafe impl Send for ThreadSafeWindowHandle {} +unsafe impl Sync for ThreadSafeWindowHandle {} + impl OrbitalImpl { fn window_fd(&self) -> usize { - self.handle.window.as_ptr() as usize + self.handle.0.window.as_ptr() as usize } // Read the current width and size @@ -134,7 +138,7 @@ impl SurfaceInterface for Orbital }; Ok(Self { - handle, + handle: ThreadSafeWindowHandle(handle), width: 0, height: 0, presented: false,