add timeouts for executors
This commit is contained in:
parent
d1524d9657
commit
cad5e339d9
@ -71,7 +71,15 @@ where
|
||||
#[inline]
|
||||
fn run_target(&mut self, input: &I) -> Result<ExitKind, Error> {
|
||||
let bytes = input.target_bytes();
|
||||
|
||||
#[cfg(unix)]
|
||||
unsafe { libc::alarm(1) };
|
||||
|
||||
let ret = (self.harness_fn)(self, bytes.as_slice());
|
||||
|
||||
#[cfg(unix)]
|
||||
unsafe { libc::alarm(0) };
|
||||
|
||||
#[cfg(unix)]
|
||||
unsafe {
|
||||
write_volatile(
|
||||
@ -228,14 +236,19 @@ mod unix_signal_handler {
|
||||
unsafe {
|
||||
let data = &mut GLOBAL_STATE;
|
||||
match signal {
|
||||
Signal::SigUser2 => (data.timeout_handler)(signal, info, void, data),
|
||||
_ => (data.crash_handler)(signal, info, void, data),
|
||||
Signal::SigUser2 | Signal::SigAlarm => {
|
||||
(data.timeout_handler)(signal, info, void, data)
|
||||
},
|
||||
_ => {
|
||||
(data.crash_handler)(signal, info, void, data)
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn signals(&self) -> Vec<Signal> {
|
||||
vec![
|
||||
Signal::SigAlarm,
|
||||
Signal::SigUser2,
|
||||
Signal::SigAbort,
|
||||
Signal::SigBus,
|
||||
|
Loading…
x
Reference in New Issue
Block a user