in concurrency-loadbalancer-core/src/main/java/com/uber/concurrency/loadbalancer/utils/HashIndexedPriorityQueue.java [161:178]
private void siftUp(int index, E e) {
int oIndex = index;
while (index > 0) {
int pIndex = (index - 1) >>> 1;
E parent = entityList.get(pIndex);
if (comparator.compare(e, parent) >= 0) {
break;
}
entityList.set(index, parent);
entityToIndex.put(parent, index);
index = pIndex;
}
if (oIndex == index)
return;
entityList.set(index, e);
entityToIndex.put(e, index);
}