From 0a08464d4fab151da73203642c8cd5150d1ad077 Mon Sep 17 00:00:00 2001 From: Skgland Date: Fri, 26 Feb 2021 17:24:31 +0100 Subject: [PATCH] move the signal handler to the binary --- src/bin/scryer-prolog.rs | 9 +++++++++ src/lib.rs | 10 ---------- src/machine/mod.rs | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/bin/scryer-prolog.rs b/src/bin/scryer-prolog.rs index e3330c0a..4260bdd5 100644 --- a/src/bin/scryer-prolog.rs +++ b/src/bin/scryer-prolog.rs @@ -9,3 +9,12 @@ fn main() { let mut wam = machine::Machine::new(readline::input_stream(), machine::Stream::stdout()); wam.run_top_level(); } + +pub extern "C" fn handle_sigint(signal: libc::c_int) { + use nix::sys::signal; + use std::sync::atomic::Ordering; + let signal = signal::Signal::from_c_int(signal).unwrap(); + if signal == signal::Signal::SIGINT { + scryer_prolog::machine::INTERRUPT.store(true, Ordering::Relaxed); + } +} diff --git a/src/lib.rs b/src/lib.rs index 06fead04..1fd4a4fb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -23,13 +23,3 @@ mod targets; mod write; use machine::*; - -use nix::sys::signal; -use std::sync::atomic::Ordering; - -pub extern "C" fn handle_sigint(signal: libc::c_int) { - let signal = signal::Signal::from_c_int(signal).unwrap(); - if signal == signal::Signal::SIGINT { - INTERRUPT.store(true, Ordering::Relaxed); - } -} diff --git a/src/machine/mod.rs b/src/machine/mod.rs index 51a88762..3deee1bb 100644 --- a/src/machine/mod.rs +++ b/src/machine/mod.rs @@ -60,7 +60,7 @@ pub(crate) struct MachinePolicies { } lazy_static! { - pub(crate) static ref INTERRUPT: AtomicBool = AtomicBool::new(false); + pub static ref INTERRUPT: AtomicBool = AtomicBool::new(false); } impl MachinePolicies { -- 2.54.0