@Override public void execute(Runnable command) { executor.execute(executorCore.registerTask(command)); }
@Override public <T> Future<T> submit(Runnable task, T result) { TrackedRunnable trackedTask = executorCore.registerTask(task); return executorCore.trackFuture(executor.submit(trackedTask, result), trackedTask); }
@Override public Future<?> submit(Runnable task) { TrackedRunnable trackedTask = executorCore.registerTask(task); return executorCore.trackFuture(executor.submit(trackedTask), trackedTask); }
@Override public <T> Future<T> submit(Callable<T> task) { return executor.submit(executorCore.registerTask(task)); }