Я использую сигнальные слоты с пользовательским объектом. Библиотека третьих сторон используется для получения некоторых измерений, и результат передается различным потокам.
struct Measurement_t{
uint temp
};
void onMeasure(){
Measurement_t meas = Measurement_t();
if(::do_measuring(&meas)){
emit sigDataMeasured(meas);
}
}
signal definition:
void sigDataMeasured(Measurement_t meas);
У меня есть этот сигнал, подключенный к трем различным потокам. Дело в том, что при использовании top я вижу, что поток, в котором происходит измерение, теряет память. Единственная операция, которую я делаю в этой теме на регулярной основе - это измерение, поэтому я подозреваю, что это проблема. Когда я писал этот метод, я думал, что слоты, подключенные к моему сигналу (QueuedConnection), получают только копию, и экземпляр measure очищается, как только метод остается?
Это правильно?