История изменений
Исправление bugfixer, (текущая версия) :
Штош, может кто что посоветует по этой теме?
Если timeouts одинаковые для всех connections не нужен Вам никакой heap. Нужен «intrusive indexed queue» с операцией «rotate to back». По активности на сокете двигаете его в конец очереди, разбираете «с головы» по таймеру. Таймер можно взводить на фиксированные интервалы, можно привязаться к head expiry (по при этом слишком часто взводить тоже не стОит, как по мне так 0.25 .. 1 сек довольно разумный «tick»). Я думаю - разберётесь. Удачи!
Исходная версия bugfixer, :
Штош, может кто что посоветует по этой теме?
Если timeouts одинаковые для всех connections не нужен вам никакой heap. Нужен «intrusive indexed queue» с операцией «rotate to back». По активности на сокете двигаете его в конец очереди, разбираете «с головы» по таймеру. Таймер можно взводить на фиксированные интервалы, можно привязаться к head expiry (по при этом слишком часто взводить тоже не стОит, как по мне так 0.25 .. 1 сек довольно разумный «tick»). Я думаю - разберётесь. Удачи!