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