Здравствуйте, Karbofos, Вы писали:
K>Здравствуйте, andrey-x86, Вы писали:
AX>>Таким образом, возникает вопрос: что я делаю не так, либо чего я не учитываю?
K>Такое поведение обычно возникает когда запускается вложенный EventLoop. K>Посмотрите, нет ли у вас в коде foo() или в вызываемых им функциях явного вызова QEventLoop::exec() либо метода XXX::processEvents(), где XXX = QEventLoop, QApplication или QCoreApplication. Скорее всего что-то подобное найдется. K>Вообще, лучше избегать вложенных EventLoop. Но если это действительно необходимо, то проблему дедлока можно обойти создав mutex с параметром RecursionMode = Recursive. Однако, при этом можно получить несколько других проблем.
Действительно, так и оказалось. QXmlQuery запускает внутри одного метода event loop, и появляются эти глюки. Обходное решение -- сгрузить этот кусочек работы в отдельный поток, который уже не будет получать события, предназначенные для исходного. После этого все заработало, как надо.