Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming.threads > #3715
| From | Ramine <toto1@toto1.net> |
|---|---|
| Newsgroups | comp.programming.threads |
| Subject | Re: About C++ and real-time OSs... |
| Date | 2017-04-02 17:31 -0400 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <obrqk4$1la5$3@gioia.aioe.org> (permalink) |
| References | <obrphg$1jdh$3@gioia.aioe.org> |
On 4/2/2017 5:13 PM, Ramine wrote:
> Hello,
>
>
> I have been working on a queue with a condition variable, but
> i have noticed that a condition variable does not work
> correctly, because the threads must be waiting to be able
> to be signaled, if they are not waiting the signal will be lost,
> so the way that many are using a condition variable with
> a FIFO queue is not correct, they are for example using
> this logic on the consumer side:
>
> while(the_queue.empty())
> {
> the_condition_variable.wait(lock);
> }
>
>
> and this is not correct, because if the_queue_empty() is true ,
> and the last producer thread signals before the consumer
> thread is waiting for the condition variable , so this will deadlock,
> so i have avoided condition variables and i have designed and
> implemented an efficient real-time and thread-safe and bounded FIFO
> Queue and Stack an i am actually finishing them and they are working
> well, and i will soon posted them on internet.
>
>
>
> Thank you,
> Amine Moulay Ramdane.
>
To solve this problem with a condition variable , of course
the signaling of the condition variable must be inside the
critical section of the producers.
But there is still a problem, it is a problem with the latency
in real-time systems, if you use only one pthreads mutex
for the producer side and the consumer side , the latency will get much
bigger, because the consumers have to wait for the producers in a FIFO
priority manner, so you have to wrap the producer side inside another
pthreads mutex to lower the latency for the condition variable
case, or you have to use smartly a pthreads semaphore.
Thank you,
Amine Moulay Ramdane.
Back to comp.programming.threads | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
About C++ and real-time OSs... Ramine <toto1@toto1.net> - 2017-04-02 17:13 -0400
Re: About C++ and real-time OSs... Ramine <toto1@toto1.net> - 2017-04-02 17:31 -0400
Re: About C++ and real-time OSs... Ramine <toto1@toto1.net> - 2017-04-02 18:09 -0400
csiph-web