diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-11-24 16:24:16 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-11-24 16:24:16 +0000 |
commit | 031289006b1b80b5829d87956a7c3b9912b42529 (patch) | |
tree | 439f25038f9df3643d60437aeb0177b055c6a734 /src/pulsecore | |
parent | 7a4242522eb56066e59ce5e40ee5ed6e8b82861e (diff) |
add new pa_mutex_try_lock() API
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2080 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/pulsecore')
-rw-r--r-- | src/pulsecore/mutex-posix.c | 12 | ||||
-rw-r--r-- | src/pulsecore/mutex.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/pulsecore/mutex-posix.c b/src/pulsecore/mutex-posix.c index 1b13ede1..6ac98484 100644 --- a/src/pulsecore/mutex-posix.c +++ b/src/pulsecore/mutex-posix.c @@ -92,6 +92,18 @@ void pa_mutex_lock(pa_mutex *m) { pa_assert_se(pthread_mutex_lock(&m->mutex) == 0); } +pa_bool_t pa_mutex_try_lock(pa_mutex *m) { + int r; + pa_assert(m); + + if ((r = pthread_mutex_trylock(&m->mutex)) != 0) { + pa_assert(r == EBUSY); + return FALSE; + } + + return TRUE; +} + void pa_mutex_unlock(pa_mutex *m) { pa_assert(m); diff --git a/src/pulsecore/mutex.h b/src/pulsecore/mutex.h index 72e88781..9ca8fae5 100644 --- a/src/pulsecore/mutex.h +++ b/src/pulsecore/mutex.h @@ -37,6 +37,7 @@ pa_mutex* pa_mutex_new(pa_bool_t recursive, pa_bool_t inherit_priority); void pa_mutex_free(pa_mutex *m); void pa_mutex_lock(pa_mutex *m); +pa_bool_t pa_mutex_try_lock(pa_mutex *m); void pa_mutex_unlock(pa_mutex *m); typedef struct pa_cond pa_cond; |