Название: [решено] Сигнал из НЕ Qt потока. Лыжи не едут? Отправлено: nwnclv от Декабрь 02, 2014, 23:47 Приветствую!
И так ситуация в следующем: Есть некий клиент, который живет и работает в своих потоках У этого клиента есть свои события, которые приходят, опять же, в его потоках. Делаю для него обертку, которую потом использую в QML. Разумеется, событие выворачиваю в сигнал. Код *.h: Код
в cpp я регистрируюсь на событие клиента и делаю emit этому сигналу. Код: Код
А теперь проблема. Первое событие приходит и обрабатывается нормально (получаю текст в лейблочке). Cкорее всего, потому как генерируется сразу при вызове register_for_events, который вызван из нажатия кнопки. А вот следующее событие приводит к сегфолту вот в этом месте: Код И далее по стеку при размотке метаобъека, глубоко в либе. Это нагенеряченый файл moc_.... того самого hшника, в котором описан сигнал. Судя по дебагеру, все объекты живые, указатели указывают, в метаобъектах тоже не нашел мусора, куда рука дотянулась. Собссно вопрос: я чего-то не понимаю? емит сигнала может быть произведен только из потоков Qt? И чего вдруг сегфолт в дебрях либы? Сталкивался кто с таким? И еще. В сигналы можно скармливать объекты по константным ссылкам? или лучше по значениям? ну так, а то мало ли... Спасибо. ЗЫЖ в теге code не отображается кириллица. Название: Re: Сигнал из НЕ Qt потока. Лыжи не едут? Отправлено: Bepec от Декабрь 03, 2014, 10:11 Посмотрите в moc файле, нет ли там в инклудах строк типо
#error ************* Если есть приведите :) Название: Re: Сигнал из НЕ Qt потока. Лыжи не едут? Отправлено: nwnclv от Декабрь 03, 2014, 20:19 Из всех только такое есть
Код
и то неактивны. Да и не собралось бы оно :-/ Кстати у меня класс является наследником от базового класса, который является наследником от QObject. Но в этом, на сколь понимаю, проблем не должно быть... Название: Re: Сигнал из НЕ Qt потока. Лыжи не едут? Отправлено: nwnclv от Декабрь 05, 2014, 19:56 Отбой тревоги. В сусе у меня кривая сборка либы. В Ubuntu вроде все норм =)
|