| package de.ids_mannheim.korap.index; |
| import org.apache.lucene.util.Counter; |
| import java.lang.*; |
| import java.lang.InterruptedException.*; |
| import org.apache.lucene.util.ThreadInterruptedException; |
| |
| /** |
| * Create a timer thread for search time outs. |
| */ |
| |
| // See TimeLimitingCollector |
| public class TimeOutThread extends Thread { |
| private static final long resolution = 250; |
| private volatile boolean stop = false; |
| private Counter counter; |
| |
| public TimeOutThread () { |
| super("TimeOutThread"); |
| counter = Counter.newCounter(true); |
| }; |
| |
| @Override |
| public void run() { |
| while (!stop) { |
| counter.addAndGet(resolution); |
| try { |
| Thread.sleep( resolution ); |
| } |
| catch (InterruptedException ie) { |
| throw new ThreadInterruptedException(ie); |
| }; |
| }; |
| }; |
| |
| // Get miliseconds |
| public long getTime () { |
| return counter.get(); |
| }; |
| |
| // Stops the timer thread |
| public void stopTimer () { |
| stop = true; |
| }; |
| }; |