[alsa-devel] Races in alsa-lib with threads

Takashi Iwai tiwai at suse.de
Tue Nov 13 15:19:27 CET 2012


At Tue, 13 Nov 2012 15:08:29 +0100,
Jaroslav Kysela wrote:
> 
> Date 13.11.2012 14:50, Takashi Iwai wrote:
> > At Tue, 13 Nov 2012 13:39:24 +0000, Krakora Robert-B42341 wrote:
> >> 
> >> [1  <text/plain; us-ascii (quoted-printable)>]
> >>> From: Takashi Iwai [tiwai at suse.de] Sent: Tuesday, November 13,
> >>> 2012 2:30 AM To: Trent Piepho Cc: Krakora Robert-B42341;
> >>> alsa-devel at alsa-project.org Subject: Re: [alsa-devel] Races in
> >>> alsa-lib with threads
> >>> 
> >>> At Tue, 13 Nov 2012 02:14:08 -0500, Trent Piepho wrote:
> >>>> 
> >>>> On Tue, Nov 13, 2012 at 1:32 AM, Takashi Iwai <tiwai at suse.de>
> >>>> wrote:
> >>>>> At Mon, 12 Nov 2012 19:40:42 +0000 (UTC), Rob Krakora wrote:
> >>>>>> Would you be able to point me the the ALSA documentation
> >>>>>> that indicates the stipulations on handle usage using
> >>>>>> multiple threads?  I cannot find it.
> >>>>> 
> >>>>> Think other way round: The fact that it isn't documented
> >>>>> means it's not safe to use in that way :)
> >>>> 
> >>>> 
> >>>> The introduction on the alsa-project home page says, "SMP and 
> >>>> thread-safe design. "  Some people might misunderstand what 
> >>>> thread-safe means.  Maybe some clarification could be added. 
> >>>> "Different streams are SMP and thread-safe (calls for the same
> >>>> stream must be serialized)."
> >>> 
> >>> Yeah this should be corrected.  SMP things are just about the
> >>> kernel side at that time.
> >>> 
> >>> It's a Wiki, feel free to correct / improve the text.
> >>> 
> >>> 
> >>> Takashi
> >> 
> >> Hi Takashi,
> >> 
> >> The way that the GStreamer ALSA Sink Plugin is using ALSA Lib
> >> assumes that it is thread safe.  The fix crafted by one of Trent's
> >> colleagues (attached) seems to be the way to go.  However, I don't
> >> know how it would impact other functionality within ALSA Lib.
> > 
> > No, sorry, we don't want to introduce pthread_lock in alsa-lib PCM 
> > stuff.
> > 
> > We already have a few places, yes, but they are exceptional (mostly 
> > for funky rarely used plugins that we can drop or mixer codes that 
> > are no hot path).
> 
> I tried to put notes on the ALSA Wiki, please, extend / fix / review.
> 
> http://www.alsa-project.org/main/index.php/SMP_Design

This looks much clearer now.  Thanks!


Takashi


More information about the Alsa-devel mailing list