This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Map and queue disagree


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]