@Override
    public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
        lock.lock();
        try {
            rejectIfDestroyed(callable);
            return add(eventLoopGroup().schedule(callable, delay, unit));
        } finally {
            lock.unlock();
        }
    }
Keeps the {@link Future}s which were scheduled via this {@link ScheduledExecutorService}.
Note that this field is also used as a lock.
core/src/main/java/com/linecorp/armeria/client/endpoint/healthcheck/DefaultHealthCheckerContext.java