[alsa-devel] [PATCH] pcm_hw: Respect LIBASOUND_THREAD_SAFE env var

Takashi Iwai tiwai at suse.de
Thu Sep 1 08:51:14 CEST 2016


On Thu, 01 Sep 2016 08:06:50 +0200,
David Henningsson wrote:
> 
> Without this patch, there no way to revert to the old
> behaviour with pcm_hw, so currently there will always
> be some extra locking.
> 
> This seems to be an oversight?

thread_safe=1 means that the plugin needs no locking, so it means hw
PCM never takes a lock by itself.  Only other plugins do, and it's
suppressed when $LIBASOUND_THREAD_SAFE=0 is passed.

The flag needs a better description or a better name...


Takashi


> Reported-by: Samuel Thibault <samuel.thibault at ens-lyon.org>
> Signed-off-by: David Henningsson <diwic at ubuntu.com>
> ---
>  src/pcm/pcm_hw.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
> index 3a5634c..e6a8a4f 100644
> --- a/src/pcm/pcm_hw.c
> +++ b/src/pcm/pcm_hw.c
> @@ -1514,7 +1514,8 @@ int snd_pcm_hw_open_fd(snd_pcm_t **pcmp, const char *name,
>  	pcm->poll_events = info.stream == SND_PCM_STREAM_PLAYBACK ? POLLOUT : POLLIN;
>  	pcm->tstamp_type = tstamp_type;
>  #ifdef THREAD_SAFE_API
> -	pcm->thread_safe = 1;
> +	if (pcm->thread_safe != -1)
> +		pcm->thread_safe = 1;
>  #endif
>  
>  	ret = snd_pcm_hw_mmap_status(pcm);
> -- 
> 1.9.1
> 


More information about the Alsa-devel mailing list