@Override
    public void transportReportStatus(Status status, @Nullable Metadata metadata) {
        // This method is invoked in ctx.eventLoop and we need to bounce it through
        // CallOptions executor (in case it's configured) to serialize with closes
        // that were potentially triggered when Listener throws (closeWhenListenerThrows).
        executor.execute(() -> closeWhenEos(status, metadata));
    }
Encapsulates the state of a single client call, writing messages from the client and reading responses
from the server, passing to business logic via {@link ClientCall.Listener}.
grpc/src/main/java/com/linecorp/armeria/internal/client/grpc/ArmeriaClientCall.java