Class Uq_engines.watchdog

class watchdog : float -> 'a #engine -> [unit] engine
A watchdog engine checks whether the argument engine makes progress, and if there is no progress for the passed number of seconds, the engine is aborted, and the watchdog state changes to `Error Watchdog_timeout.

The current implementation is not very exact, and it may take a little longer than the passed period of inactivity until the watchdog recognizes inactivity.

If the argument engine terminates, the watchdog changes its state to `Done ()

Important note: The watchdog assumes that the `Working state of the target engine really counts events that indicate progress. This does not work for: