@Override
    public ReleasableHolder<EventLoop> acquire(SessionProtocol sessionProtocol,
                                               EndpointGroup endpointGroup,
                                               @Nullable Endpoint endpoint) {
        requireNonNull(sessionProtocol, "sessionProtocol");
        requireNonNull(endpointGroup, "endpointGroup");
        final AbstractEventLoopState state = state(sessionProtocol, endpointGroup, endpoint);
        final AbstractEventLoopEntry acquired = state.acquire();
        cleanup();
        return acquired;
    }
Returns the index of {@link #eventLoops} which an {@link AbstractEventLoopState} will use to acquire an
event loop from. This also sets the index for the next {@link AbstractEventLoopState} which calls this
method.
core/src/main/java/com/linecorp/armeria/client/DefaultEventLoopScheduler.java