summaryrefslogtreecommitdiffstats
path: root/src/pulsecore/mutex-posix.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2007-09-17 00:32:51 +0000
committerLennart Poettering <lennart@poettering.net>2007-09-17 00:32:51 +0000
commit2741685d3ad4e78c1c155f77cea34c46c259584e (patch)
treee58f8356ae721328d8dea6deb75909816fff5eee /src/pulsecore/mutex-posix.c
parent61b90a0951ce709bce09cfa44825498224d92120 (diff)
use priority inheritance on mutexes where applicable
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1837 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/pulsecore/mutex-posix.c')
-rw-r--r--src/pulsecore/mutex-posix.c9
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;