add hacks to work around pulseaudio+xwayland integration deadlocks
authorMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 21 Oct 2015 21:17:49 +0000 (17:17 -0400)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Wed, 21 Oct 2015 21:19:52 +0000 (17:19 -0400)
commit6eefae48229c76e9396602f39903ed9c396d2e3c
tree1077c249e329edc09f2280d38432c493427f992e
parent06652b98b0b0dc74309fc70e3279a6aad1440864
add hacks to work around pulseaudio+xwayland integration deadlocks

enlightenment is (I think) the first wayland compositor to run with
in-process pulseaudio integration for audio playback and not just mixer
support. hooray.

this results in a fun issue: if DISPLAY is set, as it must be for x11
clients to function, pulseaudio will unconditionally attempt to use a
blocking socket connection to create a connection to the running xserver.
the only exception here is if x11 support has been compiled out of pulseaudio,
but probably no distro will do that ever.

so, what happens when the compositor thread tries to create a socket connection
to the xserver that the compositor thread has not yet started? absolutely nothing.
forever.

the easiest solution which continues to provide the key press sounds that everyone
loves is to ensure that the pulseaudio connection is created before DISPLAY is ever
set, namely in the xwayland module init.

this will now occur automatically now in the case when the mixer module detects
pulseaudio support.

TL;DR: don't disable mixer module if you use xwayland
README.wayland
configure.ac
src/modules/xwayland/e_mod_main.c