Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming.threads > #1337
| Newsgroups | comp.programming.threads |
|---|---|
| Date | 2013-02-06 20:01 -0800 |
| References | <9c4fabd6-a4e1-4ef1-9301-5fe7ef5df016@googlegroups.com> <a665fcf7-0bab-4207-b265-dc84a90c0d59@googlegroups.com> <a171fec1-2833-4c0b-a89e-f1d0b0d6876a@e10g2000vbv.googlegroups.com> <5ded78d9-8988-45aa-8de0-ccc4b702f7e8@googlegroups.com> |
| Message-ID | <b2771477-2f19-412e-85e5-b30586c4f72c@fv9g2000vbb.googlegroups.com> (permalink) |
| Subject | Re: condvars of ACE framwork - possible bug |
| From | Michael Podolsky <michael.podolsky.69@gmail.com> |
On Feb 6, 10:39 pm, Codeplug <graham.gre...@charter.net> wrote: > On Wednesday, February 6, 2013 9:36:29 PM UTC-5, Michael Podolsky wrote: > > > If ACE condvars are anything like Posix condvars, then looping on a predicate condition should solve the problem. See page 165 here (pdf):http://www.cs.wustl.edu/~schmidt/PDF/ACE-tutorial.pdf > > > looping on a condition and condvar solves spurious wake-ups problem, > > > not lost wake-ups problem. If you meant anything else, could you > > > provide your code? > > I'm probably not understanding the stated issue then :) It would help me to understand if I had the scenario you describe in code. eg: > > condvar c > mutex m > > Thread A: > -------------------- > m.lock > predicate=true > c.signal > m.unlock > ... > m.lock > while (predicate) > c.wait(m) > m.unlock > > Thread B: > -------------------- > m.lock > while (!predicate) > c.wait(m) > predicate=false > c.signal > m.unlock > > This seems correct to me using Posix semantics, but this probably isn't the scenario you described. > > gg I meant a bit different scenario in which thread A waits on condvar, thread B then signals condvar and waits on it. But your example is Ok, as for me. So what you wrote is presumably correct example of using condvars. What I mean is that ACE condvars are internally broken, it is not about how to write application-level code with them, but about their internal implementation which may be incorrect and lead to bugs even with correct application-level usage.
Back to comp.programming.threads | Previous | Next — Previous in thread | Next in thread | Find similar
condvars of ACE framwork - possible bug Michael Podolsky <michael.podolsky.69@gmail.com> - 2013-02-04 22:38 -0800
Re: condvars of ACE framwork - possible bug Codeplug <graham.greene@charter.net> - 2013-02-06 13:42 -0800
Re: condvars of ACE framwork - possible bug Michael Podolsky <michael.podolsky.69@gmail.com> - 2013-02-06 18:36 -0800
Re: condvars of ACE framwork - possible bug Codeplug <graham.greene@charter.net> - 2013-02-06 19:39 -0800
Re: condvars of ACE framwork - possible bug Michael Podolsky <michael.podolsky.69@gmail.com> - 2013-02-06 20:01 -0800
Re: condvars of ACE framwork - possible bug Codeplug <graham.greene@charter.net> - 2013-02-06 20:16 -0800
Re: condvars of ACE framwork - possible bug Michael Podolsky <michael.podolsky.69@gmail.com> - 2013-02-06 20:30 -0800
Re: condvars of ACE framwork - possible bug Codeplug <graham.greene@charter.net> - 2013-02-07 09:05 -0800
Re: condvars of ACE framwork - possible bug Michael Podolsky <michael.podolsky.69@gmail.com> - 2013-02-07 19:27 -0800
Re: condvars of ACE framwork - possible bug Noob <root@127.0.0.1> - 2013-02-07 11:54 +0100
Re: condvars of ACE framwork - possible bug Michael Podolsky <michael.podolsky.69@gmail.com> - 2013-02-07 19:24 -0800
csiph-web