Package org.openhab.core.util
Class SameThreadExecutorService
java.lang.Object
java.util.concurrent.AbstractExecutorService
org.openhab.core.util.SameThreadExecutorService
- All Implemented Interfaces:
- AutoCloseable,- Executor,- ExecutorService,- ScheduledExecutorService
@NonNullByDefault
public class SameThreadExecutorService
extends AbstractExecutorService
implements ScheduledExecutorService
ExecutorService implementation that runs all tasks in the calling thread in order to enable deterministic
 testing.
 Not for use outside tests
- Author:
- David Pace - Initial contribution, Ravi Nadahar - Adapted for more general use
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static classAScheduledFuturethat wraps aFutureand always reports zero delay.
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionbooleanawaitTermination(long timeout, @Nullable TimeUnit unit) voidbooleanbooleanNot supported ifdelayis non-zero.<V> ScheduledFuture<V> Not supported ifdelayis non-zero.scheduleAtFixedRate(@Nullable Runnable task, long initialDelay, long period, @Nullable TimeUnit unit) Will execute immediately and run only once.scheduleWithFixedDelay(@Nullable Runnable task, long initialDelay, long delay, @Nullable TimeUnit unit) Will execute immediately and run only once.voidshutdown()Future<?> <T> Future<T> <T> Future<T> Methods inherited from class java.util.concurrent.AbstractExecutorServiceinvokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor
- 
Field Details- 
terminatedprotected volatile boolean terminated
 
- 
- 
Constructor Details- 
SameThreadExecutorServicepublic SameThreadExecutorService()
 
- 
- 
Method Details- 
shutdownpublic void shutdown()- Specified by:
- shutdownin interface- ExecutorService
 
- 
shutdownNow- Specified by:
- shutdownNowin interface- ExecutorService
 
- 
isShutdownpublic boolean isShutdown()- Specified by:
- isShutdownin interface- ExecutorService
 
- 
isTerminatedpublic boolean isTerminated()- Specified by:
- isTerminatedin interface- ExecutorService
 
- 
awaitTermination- Specified by:
- awaitTerminationin interface- ExecutorService
- Throws:
- InterruptedException
 
- 
execute
- 
submit- Specified by:
- submitin interface- ExecutorService
- Overrides:
- submitin class- AbstractExecutorService
 
- 
submit- Specified by:
- submitin interface- ExecutorService
- Overrides:
- submitin class- AbstractExecutorService
 
- 
submit- Specified by:
- submitin interface- ExecutorService
- Overrides:
- submitin class- AbstractExecutorService
 
- 
scheduleNot supported ifdelayis non-zero.- Specified by:
- schedulein interface- ScheduledExecutorService
- Throws:
- NullPointerException- if- commandis- null.
- UnsupportedOperationException- if- delayis non-zero.
 
- 
schedulepublic <V> ScheduledFuture<V> schedule(@Nullable Callable<V> callable, long delay, @Nullable TimeUnit unit) Not supported ifdelayis non-zero.- Specified by:
- schedulein interface- ScheduledExecutorService
- Throws:
- NullPointerException- if- callableis- null.
- UnsupportedOperationException- if- delayis non-zero.
 
- 
scheduleAtFixedRatepublic ScheduledFuture<?> scheduleAtFixedRate(@Nullable Runnable task, long initialDelay, long period, @Nullable TimeUnit unit) Will execute immediately and run only once.- Specified by:
- scheduleAtFixedRatein interface- ScheduledExecutorService
 
- 
scheduleWithFixedDelaypublic ScheduledFuture<?> scheduleWithFixedDelay(@Nullable Runnable task, long initialDelay, long delay, @Nullable TimeUnit unit) Will execute immediately and run only once.- Specified by:
- scheduleWithFixedDelayin interface- ScheduledExecutorService
 
 
-