I am running RH ES 4, kernel 2.6.9. I am using the POSIX threads.

I have one "real-time" thread with prio 93 and policy SCHED_RR. This thread
creates and resumes another thread with prio 91 and policy SCHED_RR. This
second thread does a lot of computing things in while loops
and I have noticed that the first thread doesn't get any CPU time until the
second one has terminated.
Why does the first thread doesn't get any CPU time since it has a greater
priority and is runnable? There is no preemption when a thread is rotating
in a while loop?
I thought that with policy SCHED_RR after a while there is automatically a
yield, this is not correct?
Is the only solution to put some sched_yield() in my while loops? But it is
difficult to know how many and where to put them...

Thank you for any help.