add new pa_mutex_try_lock() API
authorLennart Poettering <lennart@poettering.net>
Sat, 24 Nov 2007 16:24:16 +0000 (16:24 +0000)
committerLennart Poettering <lennart@poettering.net>
Sat, 24 Nov 2007 16:24:16 +0000 (16:24 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2080 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/mutex-posix.c
src/pulsecore/mutex.h

index 1b13ede..6ac9848 100644 (file)
@@ -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);
 
index 72e8878..9ca8fae 100644 (file)
@@ -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;