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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `ERROR_INVALID_TIMEOUT` Error string.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Watchdog(long timeout)` Constructor for Watchdog.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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`