XPending в цикле-обработчике событий while кушает 99% процессора. Как это лечить? Точнее, как это сделать правильно по инструкции. Ибо половина примеров в сети не используют XPending, половина используют, в оф. документации скромно в две строки написано о том, что она возвращает количество текущих не распределенных сообщений.
while (!terminated)
{
if (XPending(d))
{
XNextEvent(...)
...
}
}