public TransactionMetadata( TransactionId transactionId, IsolationLevel isolationLevel, boolean readOnly, boolean autoCommitContext, CatalogManager catalogManager, Executor finishingExecutor) { this.transactionId = requireNonNull(transactionId, "transactionId is null"); this.isolationLevel = requireNonNull(isolationLevel, "isolationLevel is null"); this.readOnly = readOnly; this.autoCommitContext = autoCommitContext; this.catalogManager = requireNonNull(catalogManager, "catalogManager is null"); this.finishingExecutor = listeningDecorator(ExecutorServiceAdapter.from(requireNonNull(finishingExecutor, "finishingExecutor is null"))); }
public static ExecutorService from(Executor executor) { return new ExecutorServiceAdapter(executor); }
@Override public <T> Future<T> submit(Runnable task, T result) { return submit(Executors.callable(task, result)); }
@Override public <T> Future<T> submit(Callable<T> task) { FutureTask<T> futureTask = new FutureTask<>(task); execute(futureTask); return futureTask; }
public static ExecutorService from(Executor executor) { return new ExecutorServiceAdapter(executor); }
@Override public Future<?> submit(Runnable task) { return submit(Executors.callable(task)); }
@Override public <T> Future<T> submit(Callable<T> task) { FutureTask<T> futureTask = new FutureTask<>(task); execute(futureTask); return futureTask; }
public static ExecutorService from(Executor executor) { return new ExecutorServiceAdapter(executor); }
@Override public Future<?> submit(Runnable task) { return submit(Executors.callable(task)); }
public TransactionMetadata( TransactionId transactionId, IsolationLevel isolationLevel, boolean readOnly, boolean autoCommitContext, CatalogManager catalogManager, Executor finishingExecutor) { this.transactionId = requireNonNull(transactionId, "transactionId is null"); this.isolationLevel = requireNonNull(isolationLevel, "isolationLevel is null"); this.readOnly = readOnly; this.autoCommitContext = autoCommitContext; this.catalogManager = requireNonNull(catalogManager, "catalogManager is null"); this.finishingExecutor = listeningDecorator(ExecutorServiceAdapter.from(requireNonNull(finishingExecutor, "finishingExecutor is null"))); }
@Override public <T> Future<T> submit(Callable<T> task) { FutureTask<T> futureTask = new FutureTask<>(task); execute(futureTask); return futureTask; }
private static <T> T timeLimited(T target, Class<T> clazz, Duration timeout, ExecutorService executor, int maxThreads) { executor = new ExecutorServiceAdapter(new BoundedExecutor(executor, maxThreads)); TimeLimiter limiter = SimpleTimeLimiter.create(executor); return limiter.newProxy(target, clazz, timeout.toMillis(), MILLISECONDS); }
@Override public <T> Future<T> submit(Runnable task, T result) { return submit(Executors.callable(task, result)); }
public TransactionMetadata( TransactionId transactionId, IsolationLevel isolationLevel, boolean readOnly, boolean autoCommitContext, CatalogManager catalogManager, Executor finishingExecutor) { this.transactionId = requireNonNull(transactionId, "transactionId is null"); this.isolationLevel = requireNonNull(isolationLevel, "isolationLevel is null"); this.readOnly = readOnly; this.autoCommitContext = autoCommitContext; this.catalogManager = requireNonNull(catalogManager, "catalogManager is null"); this.finishingExecutor = listeningDecorator(ExecutorServiceAdapter.from(requireNonNull(finishingExecutor, "finishingExecutor is null"))); }
private static <T> T timeLimited(T target, Class<T> clazz, Duration timeout, ExecutorService executor, int maxThreads) { executor = new ExecutorServiceAdapter(new BoundedExecutor(executor, maxThreads)); TimeLimiter limiter = SimpleTimeLimiter.create(executor); return limiter.newProxy(target, clazz, timeout.toMillis(), MILLISECONDS); }
@Override public <T> Future<T> submit(Runnable task, T result) { return submit(Executors.callable(task, result)); }
@Override public Future<?> submit(Runnable task) { return submit(Executors.callable(task)); }