## org.apache.tools.ant.util
Class Watchdog

    java.lang.Object
      org.apache.tools.ant.util.Watchdog

All Implemented Interfaces:
  java.lang.Runnable

    public class Watchdog

extends java.lang.Object
implements java.lang.Runnable

Generalization of `ExecuteWatchdog`

Since:
  Ant 1.5
See Also:
  `ExecuteWatchdog`

Field Summary
`static java.lang.String` `ERROR_INVALID_TIMEOUT` Error string.

Constructor Summary
`Watchdog(long timeout)` Constructor for Watchdog.

Method Summary
`void` `addTimeoutObserver(TimeoutObserver to)` Add a timeout observer.
`protected void` `fireTimeoutOccured()` Inform the observers that a timeout has occurred.
`void` `removeTimeoutObserver(TimeoutObserver to)` Remove a timeout observer.
`void` `run()` The run method of the watch dog thread.
`void` `start()` Start the watch dog.
`void` `stop()` Stop the watch dog.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ERROR_INVALID_TIMEOUT

    public static final java.lang.String ERROR_INVALID_TIMEOUT

  Error string. "timeout less than 1."

  See Also:
    Constant Field Values

Constructor Detail

### Watchdog

    public Watchdog(long timeout)

  Constructor for Watchdog.

  Parameters:
    `timeout` - the timeout to use in milliseconds (must be >= 1).

Method Detail

### addTimeoutObserver

    public void addTimeoutObserver(TimeoutObserver to)

  Add a timeout observer.

  Parameters:
    `to` - the timeout observer to add.

### removeTimeoutObserver

    public void removeTimeoutObserver(TimeoutObserver to)

  Remove a timeout observer.

  Parameters:
    `to` - the timeout observer to remove.

### fireTimeoutOccured

    protected final void fireTimeoutOccured()

  Inform the observers that a timeout has occurred. This happens in the watchdog thread.

### start

    public void start()

  Start the watch dog.

### stop

    public void stop()

  Stop the watch dog.

### run

    public void run()

  The run method of the watch dog thread. This simply does a wait for the timeout time, and if the stop flag has not been set when the wait has returned or has been interrupted, the watch dog listeners are informed.

  Specified by:
    `run` in interface `java.lang.Runnable`