Fix race condition with setting interval from another thread
Fix race condition with setting interval from another thread

Interval setter checks if timer is active and then calls start() to set the new
interval if it is.  start() runs from main thread, so if the interval is
set from another thread, there could be a race between checking timer
active and starting it with the new interval, causing a stopped timer to
be inadvertently restarted.

freevo/kaa-base,freevo/kaa-base