@Override
    public void updateHealth(double health, @Nullable ClientRequestContext ctx,
                             @Nullable ResponseHeaders headers, @Nullable Throwable cause) {
        final boolean isHealthy = health > 0;
        if (headers != null && headers.contains("x-envoy-degraded")) {
            endpointAttributes = healthCheckAttributes(isHealthy, true);
        } else {
            endpointAttributes = healthCheckAttributes(isHealthy, false);
        }
        onUpdateHealth.accept(originalEndpoint.withAttrs(endpointAttributes), isHealthy);

        if (!initialCheckFuture.isDone()) {
            if (isHealthy) {
                initialCheckFuture.complete(null);
            } else {
                if (cause != null) {
                    initialCheckFuture.completeExceptionally(cause);
                } else {
                    assert headers != null;
                    initialCheckFuture.completeExceptionally(new InvalidResponseException(
                            ctx + " Received an unhealthy check response. headers: " + headers));
                }
            }
        }
    }
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