Почему мы должны указывать hrtimer_mode дважды, используя hrtimers - PullRequest
0 голосов
/ 13 февраля 2020

Зачем нам нужно указывать hrtimer_mode дважды при использовании hrtimers:

1. Инициализация таймера:

void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
                  enum hrtimer_mode mode);

2. Запуск таймера:

void hrtimer_start(struct hrtimer *timer, ktime_t tim,
                   const enum hrtimer_mode mode);

Что произойдет, если я укажу разные режимы в обеих функциях?

1 Ответ

3 голосов
/ 13 февраля 2020

HRTIMER_MODE_REL влияет как на выбор часов в hrtimer_init(), так и на интерпретацию времени ожидания в hrtimer_start().

Если вы инициализируете таймер CLOCK_REALTIME как абсолютный, а затем используете относительное время ожидания, то время ожидания могут быть затронуты изменениями часов (что, с точки зрения пользовательского пространства, нарушает POSIX).

...