move the signal handler to the binary

This commit is contained in:
Skgland
2021-02-26 17:24:31 +01:00
parent a638d42d92
commit 0a08464d4f
3 changed files with 10 additions and 11 deletions

View 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);
}
}

View 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);
}
}

View 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 {