]> code.delx.au - pulseaudio/commitdiff
don't fail device reservation if the D-Bus connection is dead
authorLennart Poettering <lennart@poettering.net>
Mon, 6 Apr 2009 02:21:26 +0000 (04:21 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 6 Apr 2009 02:21:26 +0000 (04:21 +0200)
src/modules/reserve-wrap.c

index 1927342b2ff51019e3a856dbe1f7a0e9928d6625..02ff29be52f4d6af30b2f8534230aeab0c4a39fd 100644 (file)
@@ -23,6 +23,8 @@
 #include <config.h>
 #endif
 
+#include <errno.h>
+
 #include <pulse/xmalloc.h>
 #include <pulse/i18n.h>
 
@@ -127,8 +129,13 @@ pa_reserve_wrapper* pa_reserve_wrapper_get(pa_core *c, const char *device_name)
                  request_cb,
                  NULL)) < 0) {
 
-        pa_log_error("Failed to acquire reservation lock on device '%s': %s", device_name, pa_cstrerror(-k));
-        goto fail;
+        if (k == -EBUSY) {
+            pa_log_error("Device '%s' already locked.", device_name);
+            goto fail;
+        } else {
+            pa_log_warn("Failed to acquire reservation lock on device '%s': %s", device_name, pa_cstrerror(-k));
+            return r;
+        }
     }
 
     pa_log_debug("Successfully acquired reservation lock on device '%s'", device_name);