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
