backend-x11: Reintroduce XInitThreads
It was removed in 3.34 as part of 6ed5d2e2. And we thought that was the only thread that might exist and use X11. But the top gnome-shell crasher in 3.36 seems to suggest otherwise.
We don't know what or where the offending thread is, but since:
-
We used XInitThreads for years already prior to 3.34; and
-
Extensions or any change to mutter/gnome-shell could conceivably use threads to make X calls, directly or indirectly,
it's probably a good idea to reintroduce XInitThreads. The failing assertion in libx11 is also accompanied by a strong hint:
fprintf(stderr, "[xcb] Most likely this is a multi-threaded client " \
"and XInitThreads has not been called\n");
https://bugs.launchpad.net/bugs/1877075
Closes: #1252 (closed)
Edited by Daniel van Vugt