move the signal handler to the binary
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
10
src/lib.rs
10
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user