diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-09-17 00:32:51 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-09-17 00:32:51 +0000 |
commit | 2741685d3ad4e78c1c155f77cea34c46c259584e (patch) | |
tree | e58f8356ae721328d8dea6deb75909816fff5eee /src/pulsecore/mutex-posix.c | |
parent | 61b90a0951ce709bce09cfa44825498224d92120 (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.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; |