Я пишу библиотеку для приложения, которая загружает мою библиотеку dinamycaly и запускает выполнение в потоке posix. Я попросил разработчиков приложения использовать QThreads, но они сказали, что ничего не могут изменить.
В моей библиотеке я хотел бы использовать привязки Qt Dbus, но это не очень хорошо работает, поскольку он не работает в контексте QThread. Я заметил две вещи:
При создании интерфейса dbus я получаю следующее сообщение:
QSocketNotifier: может использоваться только с потоками, запущенными с QThread
QSocketNotifier: может использоваться только с потоками, запущенными с QThread
Вся найденная информация говорит о том, что мне нужно создать QThread, чтобы он работал, а не использовать потоки posix, но у меня нет выбора.
Можно ли заставить QSocketNotifier работать из не-QThread контекста? Если да, то как?
PS Я могу скомпилировать библиотеку qt из исходных текстов и делать с ней все что угодно. Так что, даже исправление было бы хорошо.
я нашел этот патч для qt 4.8 включить установку диспетчера пользовательских событий. Но я не уверен, что это что-то сломает, и если это потокобезопасно. Поиграюсь немного с ним и посмотрим, работает ли он.
Задача ещё не решена.