[Vm-dev] [Pharo-dev] Problem with OSSubprocess / signals / heartbeat ?
eliot.miranda at gmail.com
Fri Mar 31 14:31:10 UTC 2017
> On Mar 31, 2017, at 6:42 AM, Levente Uzonyi <leves at caesar.elte.hu> 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.
It did happen. In 2009 Andreas and I demonstrated it on Linux. Yes it may be the case that certain Linux kernel versions fix the issue but the only reliable way is to have the heartbeat thread run at a higher priority than the Smalltalk thread.
More information about the Vm-dev