daemon: Don't try to lock and synchronise threads on (k)FreeBSD
authorJoe Marcus Clarke <marcus@FreeBSD.org>
Sun, 13 Apr 2014 17:15:28 +0000 (19:15 +0200)
committerTanu Kaskinen <tanu.kaskinen@linux.intel.com>
Fri, 1 Aug 2014 07:47:18 +0000 (10:47 +0300)
Credits: Steven Chamberlain <steven@pyro.eu.org> is also a co-author
BugLink: http://bugs.debian.org/705435
Origin: http://svnweb.freebsd.org/ports/head/audio/pulseaudio/files/patch-src_daemon_main.c?revision=231972&view=markup&pathrev=231972

src/daemon/main.c

index f381e8a..150ce6d 100644 (file)
@@ -711,6 +711,10 @@ int main(int argc, char *argv[]) {
          * first take the autospawn lock to make things
          * synchronous. */
 
+        /* This locking and thread synchronisation code doesn't work reliably
+         * on kFreeBSD (Debian bug #705435), or in upstream FreeBSD ports
+         * (bug reference: ports/128947, patched in SVN r231972). */
+#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
         if ((autospawn_fd = pa_autospawn_lock_init()) < 0) {
             pa_log("Failed to initialize autospawn lock");
             goto finish;
@@ -722,6 +726,7 @@ int main(int argc, char *argv[]) {
         }
 
         autospawn_locked = true;
+#endif
     }
 
     if (conf->daemonize) {