Paul, I saw you pointing to the problematic usage of mutex with ringbuffers a couple of times now. In the most recent case you mentioned a solution of yours without mutices (sorry, I can't find the reference anymore ... probably was on LAD).
To me it's not clear why protecting a ringbuffer with a mutex is evil. Is it simply the problem of "abuse", in the sense of one client locks the mutex longer than necessary (i.e. longer than just copying data to/from the buffer), or are there other reasons, like overhead considerations due to locking/unlocking a mutex (implementation details of pthread_mutex_...), or whatever? I'm curious about how you manage to safely access a ringbuffer in a multithreading environment without using a mutex lock. I have a background in programming flip-chip die-bonding machines with a dedicated realtime OS (VxWorks), and the topics discussed here in the context of audio-processing sound quite familiar to me. However, I have very little experiance with linux in this area, so maybe you can give me some clues ... Thank you, Wolfgang ----- Original Message ----- From: "Paul Davis" <[EMAIL PROTECTED]> To: "Tom Browne" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Thursday, November 22, 2001 2:43 PM Subject: Re: [Alsa-devel] Restarting when in async mode > thread 1: > > while (1) { > wait_for_disk_data_needed(); > fill_buffers (); > } > > thread 2: > > while (1) { > wait_for_audio_to_be_possible (); > write_to_audio_interface_from_buffers (); > } > > well, that looks better, except if the implementation of > fill_buffers() and write_to_audio_interface_from_buffers() uses a > mutex and its not used "appropriately", this design will still work in > some cases and cause dropouts in others. > > > --p > > _______________________________________________ > Alsa-devel mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/alsa-devel _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel