diff options
Diffstat (limited to 'racer-tracer/src/image_action')
| -rw-r--r-- | racer-tracer/src/image_action/png.rs | 1 | ||||
| -rw-r--r-- | racer-tracer/src/image_action/wait_for_signal.rs | 5 |
2 files changed, 4 insertions, 2 deletions
diff --git a/racer-tracer/src/image_action/png.rs b/racer-tracer/src/image_action/png.rs index dbed285..5b2bf1a 100644 --- a/racer-tracer/src/image_action/png.rs +++ b/racer-tracer/src/image_action/png.rs @@ -14,6 +14,7 @@ impl ImageAction for SavePng { fn action( &self, screen_buffer: &RwLock<Vec<u32>>, + _cancel_event: &SignalEvent, event: &SignalEvent, config: &Config, log: Logger, diff --git a/racer-tracer/src/image_action/wait_for_signal.rs b/racer-tracer/src/image_action/wait_for_signal.rs index 0ffe5e7..1e31200 100644 --- a/racer-tracer/src/image_action/wait_for_signal.rs +++ b/racer-tracer/src/image_action/wait_for_signal.rs @@ -1,4 +1,4 @@ -use std::sync::RwLock; +use std::{sync::RwLock, time::Duration}; use slog::Logger; use synchronoise::SignalEvent; @@ -17,6 +17,7 @@ impl ImageAction for WaitForSignal { fn action( &self, _screen_buffer: &RwLock<Vec<u32>>, + cancel_event: &SignalEvent, event: &SignalEvent, _config: &Config, _log: Logger, @@ -24,7 +25,7 @@ impl ImageAction for WaitForSignal { ) -> Result<(), TracerError> { if !event.status() { write_term!(term, "Press R to resume."); - event.wait(); + while !event.wait_timeout(Duration::from_secs(1)) && !cancel_event.status() {} } event.reset(); Ok(()) |
