Hi all

As the long subject indicates, but I'll elaborate the situation:

I have three pthreads reader/worker/writer. the reader and the writer are of
the same priority and SCHED_FIFO policy while the worker has a lower
priority and a SCHED_RR policy.
The reader is continuously calling select on multiple fds to read from, when
data available it reads and puts them in a reader/worker queue. worker works
then puts the result in a worker/writer queue. writer writes the result to
some fds.

this program causes a system wide deadlock the moment it started when
running on a uni-processor system. but it works perfectly (stress tested)
when the three processes are of a SCHED_OTHER policy and the same priority.
the synchronization mechanisms are pthread_mutex_lock/unlock and
p_thread_cond_wait/signal

is there any conceptual flaw with using RT priorities with select() or with
the mentioned synchronization mechanisms ? linux kernel is mainstream 2.6.24
and 2.6.29

Many thanks

Tayseer

Reply via email to