LINUX.ORG.RU

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

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

При инициализации проги выяснить точность системного sleep() путем тестирования.

Дальше засунуть все таймауты в дерево по упорядоченное по времени наступления событий, и начинать его обход, используя sleep() с рассчетом чтоб не проморгать наступление события, добирать нужный момент времени при помощи busywait.

Таким образом даже без linux-rt можно обеспечить приличную точность.

Потоку назначить реалтаймовый приоритет и прибить его к одному ядру.

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

При инициализации проги выяснить точность системного sleep() путем тестирования.

Дальше засунуть все таймауты в дерево по упорядоченное по времени наступления событий, и начинать его обход, используя sleep() с рассчетом чтоб не проморгать наступление события, добирать нужный момент времени при помощи busywait.

Таким образом даже без linux-rt можно обеспечить приличную точность.