org.apache.lucene.search

## Class TimeLimitingCollector.TimerThread

- java.lang.Object
- - java.lang.Thread
  - - org.apache.lucene.search.TimeLimitingCollector.TimerThread

All Implemented Interfaces:
  Runnable

Enclosing class:
  TimeLimitingCollector

    public static final class TimeLimitingCollector.TimerThread
    extends Thread

Thread used to timeout search requests. Can be stopped completely with `stopTimer()`

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Nested Class Summary

### Nested classes/interfaces inherited from class java.lang.Thread

`Thread.State, Thread.UncaughtExceptionHandler`

### Field Summary

Fields
`static int` `DEFAULT_RESOLUTION`
`static String` `THREAD_NAME`

### Fields inherited from class java.lang.Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

### Constructor Summary

Constructors
Constructor and Description
`TimeLimitingCollector.TimerThread(Counter counter)`
`TimeLimitingCollector.TimerThread(long resolution, Counter counter)`

### Method Summary

Methods
`long` `getMilliseconds()` Get the timer value in milliseconds.
`long` `getResolution()` Return the timer resolution.
`void` `run()`
`void` `setResolution(long resolution)` Set the timer resolution.
`void` `stopTimer()` Stops the timer thread

### Methods inherited from class java.lang.Thread

`activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### THREAD_NAME

    public static final String THREAD_NAME

See Also:
  Constant Field Values

#### DEFAULT_RESOLUTION

    public static final int DEFAULT_RESOLUTION

See Also:
  Constant Field Values

### Constructor Detail

#### TimeLimitingCollector.TimerThread

    public TimeLimitingCollector.TimerThread(long resolution,
                                     Counter counter)

#### TimeLimitingCollector.TimerThread

    public TimeLimitingCollector.TimerThread(Counter counter)

### Method Detail

#### run

    public void run()

Specified by:
  `run` in interface `Runnable`
Overrides:
  `run` in class `Thread`

#### getMilliseconds

    public long getMilliseconds()

Get the timer value in milliseconds.

#### stopTimer

    public void stopTimer()

Stops the timer thread

#### getResolution

    public long getResolution()

Return the timer resolution.

See Also:
  `setResolution(long)`

#### setResolution

    public void setResolution(long resolution)

Set the timer resolution. The default timer resolution is 20 milliseconds. This means that a search required to take no longer than 800 milliseconds may be stopped after 780 to 820 milliseconds.
Note that:

- Finer (smaller) resolution is more accurate but less efficient.
- Setting resolution to less than 5 milliseconds will be silently modified to 5 milliseconds.
- Setting resolution smaller than current resolution might take effect only after current resolution. (Assume current resolution of 20 milliseconds is modified to 5 milliseconds, then it can take up to 20 milliseconds for the change to have effect.