aboutsummaryrefslogtreecommitdiff
path: root/helix-event/src/redraw.rs
diff options
context:
space:
mode:
Diffstat (limited to 'helix-event/src/redraw.rs')
-rw-r--r--helix-event/src/redraw.rs24
1 files changed, 14 insertions, 10 deletions
diff --git a/helix-event/src/redraw.rs b/helix-event/src/redraw.rs
index a9915223..8fadb8ae 100644
--- a/helix-event/src/redraw.rs
+++ b/helix-event/src/redraw.rs
@@ -5,16 +5,20 @@ use std::future::Future;
use parking_lot::{RwLock, RwLockReadGuard};
use tokio::sync::Notify;
-/// A `Notify` instance that can be used to (asynchronously) request
-/// the editor the render a new frame.
-static REDRAW_NOTIFY: Notify = Notify::const_new();
-
-/// A `RwLock` that prevents the next frame from being
-/// drawn until an exclusive (write) lock can be acquired.
-/// This allows asynchsonous tasks to acquire `non-exclusive`
-/// locks (read) to prevent the next frame from being drawn
-/// until a certain computation has finished.
-static RENDER_LOCK: RwLock<()> = RwLock::new(());
+use crate::runtime_local;
+
+runtime_local! {
+ /// A `Notify` instance that can be used to (asynchronously) request
+ /// the editor to render a new frame.
+ static REDRAW_NOTIFY: Notify = Notify::const_new();
+
+ /// A `RwLock` that prevents the next frame from being
+ /// drawn until an exclusive (write) lock can be acquired.
+ /// This allows asynchronous tasks to acquire `non-exclusive`
+ /// locks (read) to prevent the next frame from being drawn
+ /// until a certain computation has finished.
+ static RENDER_LOCK: RwLock<()> = RwLock::new(());
+}
pub type RenderLockGuard = RwLockReadGuard<'static, ()>;