This is the mail archive of the
mailing list for the eCos project.
Re: timed condition variable patch
Yeah, I may have submitted this before. I don't remember. I just ran into
this problem again after getting the 2.0 source and decided to make another
patch since I had to fix it again anyway.
That's great if there is a better way to fix it also.
----- Original Message -----
From: "Jonathan Larmour" <jifl@eCosCentric.com>
To: "Wade Jensen" <email@example.com>; "Nick Garnett"
Sent: Wednesday, August 07, 2002 2:45 AM
Subject: Re: timed condition variable patch
> Wade Jensen wrote:
> > Hello,
> > There is a very rare condition in Cyg_Condition_Variable::wait_inner(
> > Cyg_Mutex *mx, cyg_tick_count timeout ) that causes the "Unnecessary
> > unlock_inner()" assertion to fail.
> This looks familiar.
> Nick, I seem to recall I discussed this with you IRL in the Red Hat office
> about this, or something similar - i.e. what happens about timers that
> trigger "now" or in the past, and I think it was also in the context of
> select(). Do you remember what the outcome was? I can't find any kernel
> change resulting certainly, but then I can't remember the problem :-).
> > Here is a patch for this problem. It is based off of the 2.0 snapshot
> > source.
> I'd probably prefer to include the if conditional in the " if(
> self->get_wake_reason() == Cyg_Thread::NONE )" test further up. But I can
> change that later, depending on what Nick says.
> --[ "You can complain because roses have thorns, or you ]--
> --[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine