Если я установлю обработчик ошибок с помощью функции xlib, XSetErrorHandler будет ли этот обработчик работать для всего процесса или только для потока, где был вызван XSetErrorHandler?
XSetErrorHandler является глобальным в двух смыслах.Во-первых, это не на поток.Во-вторых, это не для отображения: если у вас есть несколько подключений Display в одном процессе, один и тот же обработчик будет применяться ко всем из них.
Должно работать на весь процесс. Не рекомендуется, чтобы более 1 потока общались с Xlib, поскольку Xlib не является поточно-ориентированным.