]> Repositorios git - scryer-prolog.git/commitdiff
move the signal handler to the binary
authorSkgland <[email protected]>
Fri, 26 Feb 2021 16:24:31 +0000 (17:24 +0100)
committerSkgland <[email protected]>
Sun, 28 Feb 2021 18:21:31 +0000 (19:21 +0100)
src/bin/scryer-prolog.rs
src/lib.rs
src/machine/mod.rs

index e3330c0ae115d3186d7ccf11986cfed6159a6c49..4260bdd5d16f7e1cd1ec41ac70aa349fb5f5d2ee 100644 (file)
@@ -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);
+    }
+}
index 06fead04fe35d40ff8b48658232f16074da13993..1fd4a4fb4d208bb8fd6692656d08b9e9f79ff17a 100644 (file)
@@ -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);
-    }
-}
index 51a88762aeb3b2297ab5c92c1f8b5c8a9ac5c4cc..3deee1bb5972791494e2e1b47f549cda18a8dff2 100644 (file)
@@ -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 {