Deadlocks in multi threaded applications can happen on signal emit/connect depending on the order of GIL and QObject lock acquisition.
The problem looks very similar to this issue which was fixed for PySide, but possibly not for PySide2.
Unfortunately it is very hard to provide a script to reproduce the issue. But if you look at the attached process sample, you can see that:
- The main thread is trying to connect a signal, and possibly acquired the GIL.
- Thread Thread_356690 is trying to emit a signal and is waiting for the GIL to be released, but is possibly holding the lock the main thread is trying to acquire.
This problem does not happen at all with PySide 1.2.4.