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
`static java.lang.String` `ERROR_INVALID_TIMEOUT` Error string.

### Constructor Summary

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

### Method Summary

Methods
`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`