public List<RaftClient.Listener<ApiMessageAndVersion>> listeners() {
        final CompletableFuture<List<RaftClient.Listener<ApiMessageAndVersion>>> future = new CompletableFuture<>();
        eventQueue.append(() ->
            future.complete(listeners.values().stream().map(l -> l.listener).collect(Collectors.toList()))
        );
        try {
            return future.get();
        } catch (ExecutionException | InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
Shutdown the log manager.

Even though the API suggests a non-blocking shutdown, this method always returns a completed
future. This means that shutdown is a blocking operation.
metadata/src/test/java/org/apache/kafka/metalog/LocalLogManager.java