From 684b60147e8c2a2dfb4fbf6d6475ccde7bdf3cb0 Mon Sep 17 00:00:00 2001 From: Dheepak Krishnamurthy Date: Thu, 11 Feb 2021 04:24:38 -0700 Subject: [PATCH] Use SeqCst for ordering --- src/util.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/util.rs b/src/util.rs index 41f5616..e879526 100644 --- a/src/util.rs +++ b/src/util.rs @@ -78,7 +78,7 @@ impl Events { let pause_stdin = pause_stdin.clone(); thread::spawn(move || { loop { - if pause_stdin.load(Ordering::Relaxed) { + if pause_stdin.load(Ordering::SeqCst) { thread::sleep(Duration::from_millis(250)); continue; } @@ -120,7 +120,7 @@ impl Events { thread::spawn(move || loop { // print!("\r\n"); // dbg!(*pause_ticker.lock().unwrap()); - while pause_ticker.load(Ordering::Relaxed) { + while pause_ticker.load(Ordering::SeqCst) { thread::sleep(Duration::from_millis(250)); } if tx.send(Event::Tick).is_err() { @@ -145,24 +145,23 @@ impl Events { } pub fn pause_ticker(&self) { - self.pause_ticker.swap(true, Ordering::Relaxed); + self.pause_ticker.swap(true, Ordering::SeqCst); } pub fn resume_ticker(&self) { - self.pause_ticker.swap(false, Ordering::Relaxed); + self.pause_ticker.swap(false, Ordering::SeqCst); } pub fn pause_event_loop(&self) { - self.pause_stdin.swap(true, Ordering::Relaxed); + self.pause_stdin.swap(true, Ordering::SeqCst); } pub fn resume_event_loop(&self) { - self.pause_stdin.swap(false, Ordering::Relaxed); + self.pause_stdin.swap(false, Ordering::SeqCst); } pub fn pause_key_capture(&self, terminal: &mut Terminal>) { self.pause_event_loop(); - std::thread::sleep(std::time::Duration::from_millis(50)); disable_raw_mode().unwrap(); execute!(io::stdout(), LeaveAlternateScreen, DisableMouseCapture).unwrap(); terminal.show_cursor().unwrap(); @@ -171,7 +170,6 @@ impl Events { pub fn resume_key_capture(&self, terminal: &mut Terminal>) { enable_raw_mode().unwrap(); execute!(io::stdout(), EnterAlternateScreen, EnableMouseCapture).unwrap(); - std::thread::sleep(std::time::Duration::from_millis(50)); self.resume_event_loop(); terminal.resize(terminal.size().unwrap()).unwrap(); }