madf: (Default)
[personal profile] madf

  1. Не викориcтовуйте time і gettimeofday для обчислення часових інтервалів - все може зламатись при синхронізації часу (скажімо, по NTP чи вручну).

  2. Є clock_gettime/clock_getres/clock_settime - інтерфейс до кількох системних таймерів. Для обчислення інтервалів підійде CLOCK_MONOTONIC.

  3. На деяких системах (залежить від конфігурації uClibc) CLOCK_MONOTONIC недоступний, хоча ядро його реалізовує. Тут допоможе syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ×pec).

  4. Є прекрасна утилітка для перевірки доступності системних таймерів. Її джерельний код можна знайти тут: http://www.gelato.unsw.edu.au/archives/linux-ia64/0411/11792.html

  5. Я ще нагуглив getitimer/setitimer але так їх і не спробував, бо сискол вирішив всі мої проблеми з таймерами.



PS: а джерельні коди ядра не така вже і страшна штука як їх малюють. Я б навіть сказав що там все логічно і неможливо загубитись. Не вперше туди лазю :)

Profile

madf: (Default)
madf

April 2018

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 09:14 pm
Powered by Dreamwidth Studios