On 11 January 2011 20:23, Eliot Miranda <[email protected]> wrote:
>
>
>
> 2011/1/11 Levente Uzonyi <[email protected]>
>>
>>
>> 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.


So, why not use signals & POSIX timer [1] for same purpose?
Or do signals having other issues which even worse than using heartbeat process?

[1] http://www.kernel.org/doc/man-pages/online/pages/man2/timer_create.2.html

> best
> Eliot
>>
>> Levente
>
>
>



-- 
Best regards,
Igor Stasenko AKA sig.

Reply via email to