private boolean addUnusedEventLoop() {
        if (entriesSize < maxNumEventLoops) {
            final int nextIndex = (acquisitionStartIndex + nextUnusedEventLoopOffset) %
                                  eventLoops().size();
            push(new Entry(this, eventLoops().get(nextIndex), entriesSize));
            nextUnusedEventLoopOffset = (nextUnusedEventLoopOffset + 1) % maxNumEventLoops;
            return true;
        }
        return false;
    }
A binary heap of Entry. Ordered by:
<ul>
  <li>{@link AbstractEventLoopEntry#activeRequests()} (lower is better)</li>
  <li>{@link AbstractEventLoopEntry#id()} (lower is better)</li>
</ul>
core/src/main/java/com/linecorp/armeria/client/HeapBasedEventLoopState.java