summaryrefslogtreecommitdiff
path: root/racer-tracer/src/image_action
diff options
context:
space:
mode:
Diffstat (limited to 'racer-tracer/src/image_action')
-rw-r--r--racer-tracer/src/image_action/png.rs1
-rw-r--r--racer-tracer/src/image_action/wait_for_signal.rs5
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(())