On Thu, 30 Mar 2017, Eliot Miranda wrote:
Once the active process is in a tight loop the delay is effectively
disabled because the tight loop effectively shuts out the heartbeat thread and hence the system never notices that the delay has expired.
I think that won't happen, because the process scheduler (O(1), CFS, BFS) on linux is not cooperative. So, the kernel will periodically preempt the main thread and run the heartbeat thread no matter what their priorities are. The higher priority only provides lower jitter on the heartbeat thread.
Levente