[ECOS] Problems with mboxt2 solved with mboxt
Mon Aug 13 15:49:00 GMT 2007
I was having problems with synchronization on our board. After
enabling kernel instrumentation, I noticed I would sometimes see a
MBOXT_GOT message and sometimes not. Looking through the code of
mboxt.inl, I couldn't find what happened. Only when I discovered
mboxt2.inl, I understood. In mboxt2.inl an MBOXT_GOT message is only
given when the thread does not need to wait. In case it has to wait,
the mboxt2::get() returns after it's waken up (without checking the
count value, as mboxt::get() does).
So, I applied this patch :
now everything works. The main difference I see between the 2 is the
fact mboxt2 only uses 1 queue instead of 2 and only updates count
value if the queues are not empty / full. I suspect there must be an
error somewhere with the updating of that count value, but I couldn't
find it yet.
Has someone on this list further investigated this problem or is
nobody using mboxt2 anymore ?
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss