aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKunal Mohan <kunalmohan99@gmail.com>2021-04-04 23:09:37 +0530
committerKunal Mohan <kunalmohan99@gmail.com>2021-05-04 20:48:15 +0530
commit30d0ec2a40c3c955c301b4b4f978c0ff2b74881e (patch)
tree1bbe6f9a389a6bb00fde2c8e7341436dc57011e4 /src
parentFix after rebase (diff)
downloadsl0ppij-30d0ec2a40c3c955c301b4b4f978c0ff2b74881e.tar.gz
sl0ppij-30d0ec2a40c3c955c301b4b4f978c0ff2b74881e.tar.xz
sl0ppij-30d0ec2a40c3c955c301b4b4f978c0ff2b74881e.zip
fix terminal window resize tests by restricting lifetime of locks
Diffstat (limited to 'src')
-rw-r--r--src/tests/fakes.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/tests/fakes.rs b/src/tests/fakes.rs
index 8c608de3..79511743 100644
--- a/src/tests/fakes.rs
+++ b/src/tests/fakes.rs
@@ -181,8 +181,10 @@ impl ClientOsApi for FakeInputOutput {
std::thread::sleep(std::time::Duration::from_millis(200));
} else if command == QUIT && self.sigwinch_event.is_some() {
let (lock, cvar) = &*self.should_trigger_sigwinch;
- let mut should_trigger_sigwinch = lock.lock().unwrap();
- *should_trigger_sigwinch = true;
+ {
+ let mut should_trigger_sigwinch = lock.lock().unwrap();
+ *should_trigger_sigwinch = true;
+ }
cvar.notify_one();
::std::thread::sleep(MIN_TIME_BETWEEN_SNAPSHOTS); // give some time for the app to resize before quitting
} else if command == QUIT {
@@ -212,9 +214,11 @@ impl ClientOsApi for FakeInputOutput {
fn receive_sigwinch(&self, cb: Box<dyn Fn()>) {
if self.sigwinch_event.is_some() {
let (lock, cvar) = &*self.should_trigger_sigwinch;
- let mut should_trigger_sigwinch = lock.lock().unwrap();
- while !*should_trigger_sigwinch {
- should_trigger_sigwinch = cvar.wait(should_trigger_sigwinch).unwrap();
+ {
+ let mut should_trigger_sigwinch = lock.lock().unwrap();
+ while !*should_trigger_sigwinch {
+ should_trigger_sigwinch = cvar.wait(should_trigger_sigwinch).unwrap();
+ }
}
cb();
}