2011/1/11 Levente Uzonyi <leves@elte.hu>
 
On Tue, 11 Jan 2011, Eliot Miranda wrote:

(Pine can't quote your mail, sorry.)

"The problem with linux is that the pthreads implementation doesn't allow a normal user-level process to create high-priroity threads so that as
soon as the Vm starts to spin doing some computation the heartbeat thread is shut-out and if the spinning computation only interrupted when a delay
expires it'll never get interrupted because it is blocking the very thread that would signal the delay.  So until linux's pthreads implementation
supports multiple priorities we're stuck with hacks like the interval timer based itimer in the linux Cog VMs."

What about keeping the priority of the heartbeat thread at user-level and decreasing the other VM threads' priority slighly?

Linux doesn't allow more than /one/ thread priority for threads in a user-level process.   So one /can't/ have multiple priorities.  All threads run at the same priority.  This is a horrible bug in the linux pthreads implementation but there it is.

best
Eliot


Levente