LINUX.ORG.RU

История изменений

Исправление 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»). Я думаю - разберётесь. Удачи!