Frama-C API - Async
Module dedicated to asynchronous actions.
val on_progress : ?debounced:int -> ?on_delayed:(int -> unit) -> ?on_finished:(unit -> unit) -> (unit -> unit) -> daemon
on_progress ?debounced ?on_delayed trigger
registers trigger
as new daemon to be executed on each yield
.
val off_progress : daemon -> unit
Unregister the daemon
.
val while_progress : ?debounced:int -> ?on_delayed:(int -> unit) -> ?on_finished:(unit -> unit) -> (unit -> bool) -> unit
while_progress ?debounced ?on_delayed ?on_finished trigger
is similar to on_progress
but the daemon is automatically unregistered as soon as trigger
returns false
. Same optional parameters than on_progress
.
val with_progress : ?debounced:int -> ?on_delayed:(int -> unit) -> ?on_finished:(unit -> unit) -> (unit -> unit) -> ('a -> 'b) -> 'a -> 'b
with_progress ?debounced ?on_delayed trigger job data
executes the given job
on data
while registering trigger
as temporary (debounced) daemon. The daemon is finally unregistered at the end of the computation. Same optional parameters than on_progress
.
Trigger all registered daemons (debounced). This function should be called from time to time by all analysers taking time. In GUI or Server mode, this will make the clients responsive.
Interrupt the currently running job: the next call to yield
will raise a Cancel
exception.
Pauses the currently running process for the specified time, in milliseconds. Registered daemons, if any, will be regularly triggered during this waiting time at a reasonable period with respect to their debouncing constraints.
This exception may be raised by yield
to interrupt computations.