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.
