История изменений
Исправление timdorohin, (текущая версия) :
При инициализации проги выяснить точность системного sleep() путем тестирования.
Дальше засунуть все таймауты в дерево по упорядоченное по времени наступления событий, и начинать его обход, используя sleep() с рассчетом чтоб не проморгать наступление события, добирать нужный момент времени при помощи busywait.
Таким образом даже без linux-rt можно обеспечить приличную точность.
Потоку назначить реалтаймовый приоритет и прибить его к одному ядру.
Исходная версия timdorohin, :
При инициализации проги выяснить точность системного sleep() путем тестирования.
Дальше засунуть все таймауты в дерево по упорядоченное по времени наступления событий, и начинать его обход, используя sleep() с рассчетом чтоб не проморгать наступление события, добирать нужный момент времени при помощи busywait.
Таким образом даже без linux-rt можно обеспечить приличную точность.