@Override
    protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value) {
      return newTaskFor(Executors.callable(runnable, value));
    }
@Override
    protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)