It is in the timer callback -> the timer id will be implicitly destroyed when function returns FALSE.
The cached value is reset before returning so that stale id does not get used.