История изменений
Исправление alysnix, (текущая версия) :
вся система таймеров пишется за час-два на с++. нужны только треды, мьютексы, и cond var. по простому - делают отдельный тред таймеров, который и запускает те таймеры, что в очереди, как только придет из время.
сам класс таймер есть базовый класс с виртуальным методом, который и перепределяют, и не надо никаких лямбд. этот метод и вызывает тред таймеров.
примерно такие таймеры есть во всяком уважающем себя плюсовом фреймворке. если таймеров нет - значит фреймворк куцый и не имеет даже базовой функциональности.
зы. а то что у тебя - это не про таймеры, а про event-driven. кстати в event-driven, таймеры все равно могут быть, поскольку таймерные ивенты заброшенные в очередь сервису, будут обработаны не сразу, а как только у сервиса до них руки дойдут. а это уже не вполне «таймерные» ивенты.
а релаьные таймеры более строго привязаны ко времени, чем твой вариант с ивентами
Исправление alysnix, :
вся система таймеров пишется за час-два на с++. нужны только треды, мьютексы, и cond var. по простому - делают отдельный тред таймеров, который и запускает те таймеры, что в очереди, как только придет из время.
сам класс таймер есть базовый класс с виртуальным методом, который и перепределяют, и не надо никаких лямбд. этот метод и вызывает тред таймеров.
примерно такие таймеры есть во всяком уважающем себя плюсовом фреймворке. если таймеров нет - значит фреймворк куцый и не имеет даже базовой функциональности.
Исходная версия alysnix, :
вся система таймеров пишется за час-два на с++. нужны только треды, мьютексы, и cond var. по простому - делают отдельный тред таймеров, который и запускает те таймеры, что в очереди, как только придет из время.
сам класс таймер есть базовый класс с виртуальным методом, который и перепределяют, и не надо никаких лямбд. это метод и вызывает тред таймеров.
примерно такие таймеры есть во всяком уважающем себя плюсовом фреймворке. если таймеров нет - значит фреймворк куцый и не имеет даже базовой функциональности.