diff options
Diffstat (limited to 'src/pulsecore/mutex-posix.c')
-rw-r--r-- | src/pulsecore/mutex-posix.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/pulsecore/mutex-posix.c b/src/pulsecore/mutex-posix.c index 64f466d9..19e095bb 100644 --- a/src/pulsecore/mutex-posix.c +++ b/src/pulsecore/mutex-posix.c @@ -40,15 +40,20 @@ struct pa_cond { pthread_cond_t cond; }; -pa_mutex* pa_mutex_new(int recursive) { +pa_mutex* pa_mutex_new(pa_bool_t recursive, pa_bool_t inherit_priority) { pa_mutex *m; pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); - + if (recursive) pa_assert_se(pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) == 0); +#ifdef HAVE_PTHREAD_PRIO_INHERIT + if (inherit_priority) + pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT); +#endif + m = pa_xnew(pa_mutex, 1); pa_assert_se(pthread_mutex_init(&m->mutex, &attr) == 0); return m; |