The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Provide serialization to prevent multiple timer callbacks to
the user at once.