class watchdog :float -> 'a #engine ->[unit]engine
`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:
poll_process_engine: there is no way to check whether a subprocess
   makes progressconnector: It is usually not possible to reflect the progress
   on packet levellistener: It is usually not possible to reflect the progress
   on packet level