Qt конечно предоставляет всякие вкусные фишки и удобняшки, но бывают неприятные сюрпризы внутри ввиде нечеткого понимания поведения и внутреннего строения.
Вопрос такой: что если я вызываю слот класса наследованного от QThread через QMetaObject::invokeMethod, он вызовется в основном потоке или в как раз во втором потоке (что мне как раз надо)?
Что происходит с данными, которые передаются через слот при Qt::QueuedConnection? Например, я отправляю QByteArray или QString при помощи emit во второй поток - и тут же начну их модифицировать в основном? Когда я делаю emit - ведь делается копия данных, но легкая (copy on write типа)? Если я буду модифицировать любую из копий - выполнится реальное копирование. Эта операция thread-safe???
Хочу нащупать где заканчиваются пределы продуманности Qt и начинается моя головная боль... от чего защитили глупых разработчиков типа меня а от чего нет :)