void HTTP2PriorityQueue::removeTransaction(HTTP2PriorityQueue::Handle handle) { Node* node = handle; pendingWeightChange_ = true; // TODO: or require the node to do it? if (node->isEnqueued()) { clearPendingEgress(handle); } node->removeFromTree(); }
void HTTP2PriorityQueue::removeTransaction(HTTP2PriorityQueue::Handle handle) { Node* node = handle; pendingWeightChange_ = true; // TODO: or require the node to do it? if (node->isEnqueued()) { clearPendingEgress(handle); } if (allowDanglingNodes() && numVirtualNodes_ < maxVirtualNodes_) { node->clearTransaction(); numVirtualNodes_++; scheduleNodeExpiration(node); } else { VLOG(5) << "Deleting dangling node over max id=" << handle->getID(); node->removeFromTree(); } }