This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Map and queue disagree
- From: Leandro Fanzone <leandro at hasar dot com>
- To: sandeep <shimple0 at yahoo dot com>
- Cc: ecos-discuss at sources dot redhat dot com, andrew at lunn dot ch
- Date: Tue, 30 Nov 2004 16:31:57 -0300
- Subject: Re: [ECOS] Map and queue disagree
- References: <41AB89E9.6080806@hasar.com> <41AC3846.2040909@yahoo.com>
Sorry: my mistake. I was unknowingly signaling a semaphore from within
an ISR :(
Thank you, in any case.
Leandro.
sandeep wrote:
Leandro Fanzone wrote:
I'm using eCos 2.0 i386 with multilevel queue scheduler, 32 priority
levels, and scheduler timeslicing reduced to 1 tick. From time to
time I have a random "rem_thread() Map and queue disagree". Any ideas
on what can be happening?
try replacing
CYG_ASSERT( ((queue_map & (1<<pri))!=0) ==
((!run_queue[pri].empty())!=0), "Map and queue disagree");
in rem_thread (mlqueue.cxx), by (please check out the bracketing)
if (! ( ((queue_map & (1<<pri))!=0) == ((!run_queue[pri].empty())!=0)
) ) {
CYG_ASSERT(0,"Map and queue disagree");
}
put a breakpoint INSIDE if, at CYG_ASSERT, whenever execution reaches
that figure out the value/state of queue_map, pri and run_queue[pri] .
based on what you observe, work backwards to generate more hints for
your situation.
i am assuming - false is 0 in your case and there is no code
generation issue.
sandeep
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss