diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-05-24 14:08:10 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-05-24 15:55:22 +0200 |
commit | 8ea3c40687adbdbd81ee6b4c1e029c543bf45eb9 (patch) | |
tree | 4b27d457c2bee1da7ee74f164e3ec94ba95f3595 /vespajlib/src | |
parent | a9d67ff3662ef5020ce51197b698289753a83399 (diff) |
Add InThreadExecutorService for test purposes
Diffstat (limited to 'vespajlib/src')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/concurrent/InThreadExecutorService.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/concurrent/InThreadExecutorService.java b/vespajlib/src/main/java/com/yahoo/concurrent/InThreadExecutorService.java new file mode 100644 index 00000000000..c4b293f19a1 --- /dev/null +++ b/vespajlib/src/main/java/com/yahoo/concurrent/InThreadExecutorService.java @@ -0,0 +1,49 @@ +package com.yahoo.concurrent; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.AbstractExecutorService; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.TimeUnit; + +/** + * {@link ExecutorService} implementation that runs all tasks in the calling thread. Useful for tests. + * + * @author jonmv + */ +public class InThreadExecutorService extends AbstractExecutorService { + + private boolean isShutdown = false; + + @Override + public void shutdown() { + isShutdown = true; + } + + @Override + public List<Runnable> shutdownNow() { + shutdown(); + return Collections.emptyList(); + } + + @Override + public boolean isShutdown() { + return isShutdown; + } + + @Override + public boolean isTerminated() { + return isShutdown; + } + + @Override + public boolean awaitTermination(long timeout, TimeUnit unit) { + return true; + } + + @Override + public void execute(Runnable command) { + command.run(); + } + +} |