On quinta-feira, 25 de fevereiro de 2016 07:55:54 PST André Somers wrote: > Op 24/02/2016 om 18:23 schreef Thiago Macieira: > Would it be possible to circumvent this issue by moving the thread > object onto its own thread too? > > Foo() : QObject(nullptr) { > moveToThread(&m_thread); > m_thread->moveToThread(m_thread); > m_thread.start(); > } > > > Looks like the much debated move-QThread-onto-its-own-thread > antipattern, but it's not the same obviously.
No, that is exactly the "you're doing it wrong" pattern. It's just hidden by the fact that you moved it from outside the class, so you didn't use "this". And like Prav said, this doesn't solve much. Foo's destructor must run inside that thread, so that thread hasn't exited. If the destructor tries to wait() for the thread to exit, it will deadlock. The solution is to move the Foo object to another thread before destroying it. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest