This is the mail archive of the
mailing list for the eCos project.
Re: timed condition variable patch
- From: Jonathan Larmour <jifl at eCosCentric dot com>
- To: Wade Jensen <waj4news at cox dot net>, Nick Garnett<nickg at calivar dot demon dot co dot uk>
- Cc: ecos-patches at sources dot redhat dot com
- Date: Wed, 07 Aug 2002 10:45:45 +0100
- Subject: Re: timed condition variable patch
- References: <email@example.com>
Wade Jensen wrote:
This looks familiar.
There is a very rare condition in Cyg_Condition_Variable::wait_inner(
Cyg_Mutex *mx, cyg_tick_count timeout ) that causes the "Unnecessary call to
unlock_inner()" assertion to fail.
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 :-).
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.
Here is a patch for this problem. It is based off of the 2.0 snapshot
--[ "You can complain because roses have thorns, or you ]--
--[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine