Я предполагаю, что вы используете очередь приоритетов stdlib класс:
import queue
arbiter1 = queue.PriorityQueue()
В этом случае, когда вы вызываете arbiter1.put(pkt.pri, pkt)
, вы фактически передаете целое число приоритета как "item" и пакет как флаг "block":
def put(self, item, block=True, timeout=None):
...
Вместо этого вы можете передавать кортежи в:
arbiter1.put((pkt.pri, pkt))
и получать кортежи:
priority, pkt = arbiter1.get()
Если для пакетов не определен какой-либо порядок и могут быть пакеты с одинаковыми приоритетами, то вы также можете использовать в кортеже ie -breaker. Простые целые числа будут работать
import itertools
tiebreaker = itertools.count()
arbiter1.put((pkt.pri, next(tiebreaker), pkt))
priority, _, pkt = arbiter1.get()