"Michael Kerrisk (man-pages)" <mtk.manpages@xxxxxxxxx> writes: > NOTES > Suppose the following scenario for CLOCK_REALTIME or CLOCK_REAL‐ > TIME_ALARM timer that was created with timerfd_create(): > > (a) The timer has been started (timerfd_settime()) with the > TFD_TIMER_ABSTIME and TFD_TIMER_CANCEL_ON_SET flags; > > (b) A discontinuous change (e.g. settimeofday(2)) is subsequently > made to the CLOCK_REALTIME clock; and > > (c) the caller once more calls timerfd_settime() to rearm the > timer (without first doing a read(2) on the file descriptor). > > In this case the following occurs: > > · The timerfd_settime() returns -1 with errno set to ECANCELED. > (This enables the caller to know that the previous timer was > affected by a discontinuous change to the clock.) > > · The timer is successfully rearmed with the settings provided in > the second timerfd_settime() call. (This was probably an imple‐ > mentation accident, but won't be fixed now, in case there are > applications that depend on this behaviour.) Clear enough. Thanks Michael!