pub struct LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider + 'static,{ /* private fields */ }
Expand description
A manager that can restart on the fly, storing states in-between (in on_restart
)
Implementations
sourceimpl<I, OT, S, SP> LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S> + DeserializeOwned,
SP: ShMemProvider + 'static,
impl<I, OT, S, SP> LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S> + DeserializeOwned,
SP: ShMemProvider + 'static,
sourcepub fn new(
llmp_mgr: LlmpEventManager<I, OT, S, SP>,
staterestorer: StateRestorer<SP>
) -> Self
pub fn new(
llmp_mgr: LlmpEventManager<I, OT, S, SP>,
staterestorer: StateRestorer<SP>
) -> Self
Create a new runner, the executed child doing the actual fuzzing.
sourcepub fn staterestorer(&self) -> &StateRestorer<SP>
pub fn staterestorer(&self) -> &StateRestorer<SP>
Get the staterestorer
sourcepub fn staterestorer_mut(&mut self) -> &mut StateRestorer<SP>
pub fn staterestorer_mut(&mut self) -> &mut StateRestorer<SP>
Get the staterestorer (mutable)
Trait Implementations
sourceimpl<I: Debug, OT: Debug, S: Debug, SP: Debug> Debug for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider + 'static,
impl<I: Debug, OT: Debug, S: Debug, SP: Debug> Debug for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider + 'static,
sourceimpl<I, OT, S, SP> EventFirer<I> for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
impl<I, OT, S, SP> EventFirer<I> for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
SP: ShMemProvider,
sourcefn configuration(&self) -> EventConfig
fn configuration(&self) -> EventConfig
Get the configuration
sourcefn log<S>(
&mut self,
state: &mut S,
severity_level: LogSeverity,
message: String
) -> Result<(), Error>
fn log<S>(
&mut self,
state: &mut S,
severity_level: LogSeverity,
message: String
) -> Result<(), Error>
Send off an
Event::Log
event to the broker.
This is a shortcut for EventFirer::fire
with Event::Log
as argument. Read moresourcefn serialize_observers<OT, S>(
&mut self,
observers: &OT
) -> Result<Vec<u8>, Error>where
OT: ObserversTuple<I, S> + Serialize,
fn serialize_observers<OT, S>(
&mut self,
observers: &OT
) -> Result<Vec<u8>, Error>where
OT: ObserversTuple<I, S> + Serialize,
Serialize all observers for this type and manager
sourceimpl<E, I, OT, S, SP, Z> EventProcessor<E, I, S, Z> for LlmpRestartingEventManager<I, OT, S, SP>where
E: Executor<LlmpEventManager<I, OT, S, SP>, I, S, Z> + HasObservers<I, OT, S>,
I: Input,
Z: ExecutionProcessor<I, OT, S> + EvaluatorObservers<I, OT, S>,
OT: ObserversTuple<I, S> + DeserializeOwned,
SP: ShMemProvider + 'static,
impl<E, I, OT, S, SP, Z> EventProcessor<E, I, S, Z> for LlmpRestartingEventManager<I, OT, S, SP>where
E: Executor<LlmpEventManager<I, OT, S, SP>, I, S, Z> + HasObservers<I, OT, S>,
I: Input,
Z: ExecutionProcessor<I, OT, S> + EvaluatorObservers<I, OT, S>,
OT: ObserversTuple<I, S> + DeserializeOwned,
SP: ShMemProvider + 'static,
sourcefn process(
&mut self,
fuzzer: &mut Z,
state: &mut S,
executor: &mut E
) -> Result<usize, Error>
fn process(
&mut self,
fuzzer: &mut Z,
state: &mut S,
executor: &mut E
) -> Result<usize, Error>
Lookup for incoming events and process them.
Return the number of processes events or an error Read more
sourcefn deserialize_observers<OT>(
&mut self,
observers_buf: &[u8]
) -> Result<OT, Error>where
OT: ObserversTuple<I, S> + DeserializeOwned,
fn deserialize_observers<OT>(
&mut self,
observers_buf: &[u8]
) -> Result<OT, Error>where
OT: ObserversTuple<I, S> + DeserializeOwned,
Deserialize all observers for this type and manager
sourceimpl<I, OT, S, SP> EventRestarter<S> for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
S: Serialize,
SP: ShMemProvider,
impl<I, OT, S, SP> EventRestarter<S> for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
S: Serialize,
SP: ShMemProvider,
sourcefn await_restart_safe(&mut self)
fn await_restart_safe(&mut self)
The llmp client needs to wait until a broker mapped all pages, before shutting down. Otherwise, the OS may already have removed the shared maps,
sourceimpl<I, OT, S, SP> HasEventManagerId for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S> + DeserializeOwned,
S: Serialize,
SP: ShMemProvider + 'static,
impl<I, OT, S, SP> HasEventManagerId for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S> + DeserializeOwned,
S: Serialize,
SP: ShMemProvider + 'static,
sourcefn mgr_id(&self) -> EventManagerId
fn mgr_id(&self) -> EventManagerId
The id of this manager. For Multiprocessed
EventManager
s,
each client should have a unique ids. Read moresourceimpl<I, OT, S, SP> ProgressReporter<I> for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
S: Serialize,
SP: ShMemProvider,
impl<I, OT, S, SP> ProgressReporter<I> for LlmpRestartingEventManager<I, OT, S, SP>where
I: Input,
OT: ObserversTuple<I, S>,
S: Serialize,
SP: ShMemProvider,
sourcefn maybe_report_progress<S>(
&mut self,
state: &mut S,
last_report_time: Duration,
monitor_timeout: Duration
) -> Result<Duration, Error>where
S: HasExecutions + HasClientPerfMonitor + HasMetadata,
fn maybe_report_progress<S>(
&mut self,
state: &mut S,
last_report_time: Duration,
monitor_timeout: Duration
) -> Result<Duration, Error>where
S: HasExecutions + HasClientPerfMonitor + HasMetadata,
Given the last time, if
monitor_timeout
seconds passed, send off an info/monitor/heartbeat message to the broker.
Returns the new last
time (so the old one, unless monitor_timeout
time has passed and monitor have been sent)
Will return an crate::Error
, if the stats could not be sent. Read moreimpl<E, I, OT, S, SP, Z> EventManager<E, I, S, Z> for LlmpRestartingEventManager<I, OT, S, SP>where
E: Executor<LlmpEventManager<I, OT, S, SP>, I, S, Z> + HasObservers<I, OT, S>,
I: Input,
S: Serialize,
Z: ExecutionProcessor<I, OT, S> + EvaluatorObservers<I, OT, S>,
OT: ObserversTuple<I, S> + DeserializeOwned,
SP: ShMemProvider + 'static,
Auto Trait Implementations
impl<I, OT, S, SP> !RefUnwindSafe for LlmpRestartingEventManager<I, OT, S, SP>
impl<I, OT, S, SP> !Send for LlmpRestartingEventManager<I, OT, S, SP>
impl<I, OT, S, SP> !Sync for LlmpRestartingEventManager<I, OT, S, SP>
impl<I, OT, S, SP> Unpin for LlmpRestartingEventManager<I, OT, S, SP>where
I: Unpin,
OT: Unpin,
S: Unpin,
SP: Unpin,
<SP as ShMemProvider>::ShMem: Unpin,
impl<I, OT, S, SP> !UnwindSafe for LlmpRestartingEventManager<I, OT, S, SP>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Tail, T> Prepend<T> for Tail
impl<Tail, T> Prepend<T> for Tail
type PreprendResult = Tail
type PreprendResult = Tail
sourcefn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
fn prepend(self, value: T) -> (T, <Tail as Prepend<T>>::PreprendResult)
Prepend a value to this tuple, returning a new tuple with prepended value.