[alsa-devel] [PATCH 0/2] Fix thread safety issues

Takashi Iwai tiwai at suse.de
Wed Jan 30 17:03:59 CET 2013


At Wed, 30 Jan 2013 16:22:15 +0100,
Jerome Forissier wrote:
> 
> This is a set of two patches to fix thread safety issues I found when running
> a video application over ALSA. The application uses LibVLC to play several
> videos simultaneously. LibVLC calls snd_pcm_open() and snd_device_name_hint()
> from multiple threads, without locking--which is allowed according to
> http://www.alsa-project.org/main/index.php/SMP_Design.

The fix for snd_pcm_direct_parse_open_conf() looks good.  I'm going to
apply this now.

snd_device_name_hint() should use snd_config_update_r() and pass the
local config space to others instead of snd_config.


thanks,

Takashi

> 
> Without these patches, I would get random error messages like:
> 
> ALSA lib confmisc.c:768:(parse_card) cannot find card '$CARD'
> ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_card_driver returned error: No such device
> ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
> ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_concat returned error: No such device
> ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
> ALSA lib conf.c:4184:(_snd_config_evaluate) function snd_func_refer returned error: No such device
> ALSA lib conf.c:4663:(snd_config_expand) Evaluate error: No such device
> 
> Jerome Forissier (2):
>   Make snd_device_name_hint() thread-safe by locking a mutex
>   snd_pcm_direct_parse_open_conf(): use thread-safe getgrnam_r()
> 
>  src/control/namehint.c | 31 +++++++++++++++++++++++++++++++
>  src/pcm/pcm_direct.c   | 15 +++++++++++----
>  2 files changed, 42 insertions(+), 4 deletions(-)
> 
> -- 
> 1.8.1.2
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list