On Sun, Apr 2, 2017 at 3:11 AM, Petr Fischer petr.fischer@me.com wrote:
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
Is there some test case or code, that I can run in Pharo and evaluate if kernel sheduler is working correctly (with heartbeat thread at normal priority). I need to test it under FreeBSD.
Thanks! pf
Just for starters, what result do you get for my multi-priority fibonacci stress test... http://forum.world.st/Unix-heartbeat-thread-vs-itimer-tp4928943p4938456.html
cheers -ben