code: func (q *queue) Revoke(peerID string) {
  	q.lock.Lock()
  	defer q.lock.Unlock()
  
  	if request, ok := q.blockPendPool[peerID]; ok {
  		for _, header := range request.Headers {
  			q.blockTaskQueue.Push(header, -int64(header.Number.Uint64()))
  		}
  		delete(q.blockPendPool, peerID)
  	}
  	if request, ok := q.receiptPendPool[peerID]; ok {
  		for _, header := range request.Headers {
  			q.receiptTaskQueue.Push(header, -int64(header.Number.Uint64()))
  		}
  		delete(q.receiptPendPool, peerID)
  	}
  }
docs: // Revoke cancels all pending requests belonging to a given peer. This method is
  // meant to be called during a peer drop to quickly reassign owned data fetches
  // to remaining nodes.