// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. 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 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(); } }