Why does timerfd() only support CLOCK_REALTIME and CLOCK_MONOTONIC?

Michael Kerrisk
2009-02-08T18:26:03Z

Hi Davide,

At the moment I'm looking into writing man pages for timer_create(2)
and friends. (Somewhat bizarrely, these pages do not yet exist.) As
I looked into the source code of timer_create(), etc., and did some
tests, I saw that timer_create() supports the following clocks:

TIMER_REALTIME
TIMER_MONOTONIC
TIMER_PROCESS_CPUTIME_ID
TIMER_THREAD_CPUTIME_ID
clockid obtained from clock_getcpuclockid(3)
clockid obtained from pthread_getcpuclockid(3)

On the other hand, timerfd() only permits the first two of these.
What's the reason for that limitation of timerfd()? (It may be worth
adding something to the man page on this point.)

Cheers,

Michael