This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: How to debug synchronisation in the usbs.c in a new usb-driver for the ARM at91sam7s...
>>>>> "Gary" == Gary Thomas <gary@mlbassoc.com> writes:
Gary> On Thu, 2006-02-16 at 17:25 +0100, Andrew Lunn wrote:
>> On Thu, Feb 16, 2006 at 11:15:25AM -0500, Derek Bouius wrote:
>>
>> > I am not registered for the mailing list, but peruse it once in a
>> > while, so I am not sure if my mail will go through to it. Feel free
>> > to repost it if it doesn't.
>>
>> It got through.
>>
>> > What we did to fix the locking issue was change the mutex to a
>> > semaphore. See the patch. It seems to work reliably.
>>
>> Did you understand what the problem was with the condition variable?
>> Could you explain it?
Gary> This seems like a pretty heavyweight solution. I think that Bart
Gary> may want/need to review this before it's accepted into CVS.
Yes, although it has been a while since I looked at that code.
A problem with semaphores is that they are only available in kernel
configurations. The driver API only has condition variables as a way
of signalling events from a DSR to a thread. That is fine for
complicated I/O, but in most of my drivers I only need something
simple. A counting semaphore in the driver API would make it easier to
write drivers, and would require less code and data than a
mutex/condition variable combination.
Does anybody remember why counting semaphores were left out of the
driver API?
Bart
--
Bart Veer eCos Configuration Architect
http://www.ecoscentric.com/ The eCos and RedBoot experts
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss