diff options
Diffstat (limited to 'package/alsa-lib/patches/patch-src_conf_c')
-rw-r--r-- | package/alsa-lib/patches/patch-src_conf_c | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/package/alsa-lib/patches/patch-src_conf_c b/package/alsa-lib/patches/patch-src_conf_c index a6f296614..f3c1e70bd 100644 --- a/package/alsa-lib/patches/patch-src_conf_c +++ b/package/alsa-lib/patches/patch-src_conf_c @@ -1,13 +1,35 @@ -* added idea/patch from https://github.com/rofl0r/sabotage - +from alpinelinux + http://git.alpinelinux.org/cgit/aports/tree/main/alsa-lib/alsa-lib-portable-mutex.patch --- alsa-lib-1.0.27.2.orig/src/conf.c 2013-07-08 14:31:36.000000000 +0200 -+++ alsa-lib-1.0.27.2/src/conf.c 2013-09-17 18:30:14.000000000 +0200 -@@ -428,7 +428,7 @@ beginning:</P> ++++ alsa-lib-1.0.27.2/src/conf.c 2013-10-02 14:32:15.000000000 +0200 +@@ -427,8 +427,8 @@ beginning:</P> + #ifndef DOC_HIDDEN #ifdef HAVE_LIBPTHREAD - static pthread_mutex_t snd_config_update_mutex = +-static pthread_mutex_t snd_config_update_mutex = - PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; -+ {{{1,0,0,0,0,0,0,0,0,0}}}; ++static pthread_mutex_t snd_config_update_mutex; ++static pthread_once_t snd_config_update_mutex_once = PTHREAD_ONCE_INIT; #endif struct _snd_config { +@@ -472,8 +472,19 @@ typedef struct { + + #ifdef HAVE_LIBPTHREAD + ++static void snd_config_init_mutex(void) ++{ ++ pthread_mutexattr_t attr; ++ ++ pthread_mutexattr_init(&attr); ++ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); ++ pthread_mutex_init(&snd_config_update_mutex, &attr); ++ pthread_mutexattr_destroy(&attr); ++} ++ + static inline void snd_config_lock(void) + { ++ pthread_once(&snd_config_update_mutex_once, snd_config_init_mutex); + pthread_mutex_lock(&snd_config_update_mutex); + } + |