LINUX.ORG.RU

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

Исправление a--, (текущая версия) :

Еще нужно будет защититься от ситуаций, когда на одну миллисекунду может выпасть разу несколько таймеров.

Это да, я прозевал, нужен ordered_multimap, но внутри там все равно то же дерево.

Если таймеров много, то эффективнее будет timer_wheel, правда ценой гранулярности таймера

Если мы подсунем нашему контейнеру (ordered_multimap) другой оператор сравнения таймеров, который будет выдавать равенство таймеров для приблизительно равных времен срабатывания, то получим timer_wheel, не?

Причем можно попробовать обнаглеть и менять точность сравнения таймеров прямо на ходу (в зависимости от их количества например). Тут подумать надо, сломается ли что от этого внутри дерева — мне кажется что нет. Вообще это было бы полезное свойство дерева.

Исправление a--, :

Еще нужно будет защититься от ситуаций, когда на одну миллисекунду может выпасть разу несколько таймеров.

Это да, я прозевал, нужен ordered_multimap, но внутри там все равно то же дерево.

Если таймеров много, то эффективнее будет timer_wheel,

Если мы подсунем нашему контейнеру (ordered_multimap) другой оператор сравнения таймеров, который будет выдавать равенство таймеров для приблизительно равных времен срабатывания, то получим timer_wheel, не?

Причем можно попробовать обнаглеть и менять точность сравнения таймеров прямо на ходу (в зависимости от их количества например). Тут подумать надо, сломается ли что от этого внутри дерева — мне кажется что нет. Вообще это было бы полезное свойство дерева.

Исправление a--, :

Еще нужно будет защититься от ситуаций, когда на одну миллисекунду может выпасть разу несколько таймеров.

Это да, я прозевал, нужен ordered_multimap, но внутри там все равно то же дерево.

Если таймеров много, то эффективнее будет timer_wheel,

Если мы перегрузим оператор сравнения таймеров, и он будет выдавать равенство таймеров для приблизительно равных времен срабатывания, то получим timer_wheel, не?

Причем можно попробовать обнаглеть и менять точность сравнения таймеров прямо на ходу (в зависимости от их количества например). Тут подумать надо, сломается ли что от этого внутри дерева — мне кажется что нет. Вообще это было бы полезное свойство дерева.

Исправление a--, :

Еще нужно будет защититься от ситуаций, когда на одну миллисекунду может выпасть разу несколько таймеров.

Это да, я прозевал, нужен ordered_multimap, но внутри там все равно то же дерево.

Если таймеров много, то эффективнее будет timer_wheel,

Если мы перегрузим оператор сравнения таймеров, и он будет выдавать равенство таймеров для приблизительно равных времен срабатывания, то получим timer_wheel, не?

Причем можно попробовать обнаглеть и менять точность сравнения таймеров прямо на ходу... тут подумать надо, сломается ли что от этого, кажется что нет.

Исходная версия a--, :

Еще нужно будет защититься от ситуаций, когда на одну миллисекунду может выпасть разу несколько таймеров.

Это да, я прозевал, нужен ordered_multimap, но внутри там все равно то же дерево.

Если таймеров много, то эффективнее будет timer_wheel,

Если мы перегрузим оператор сравнения таймеров, и он будет выдавать равенство таймеров для приблизительно равных времен срабатывания, то получим timer_wheel, не?

Причем можно обнаглеть и менять точность на ходу?