This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Problems with mboxt2 solved with mboxt
- From: "Pieter-Jan Busschaert" <pieterjan dot busschaert at gmail dot com>
- To: ecos-discuss at ecos dot sourceware dot org
- Date: Mon, 13 Aug 2007 17:49:29 +0200
- Subject: [ECOS] Problems with mboxt2 solved with mboxt
Hello list,
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 :
http://ecos.sourceware.org/ml/ecos-patches/2006-09/msg00014.html and
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 ?
Pieter-Jan Busschaert
Software Engineer
http://www.barco.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