#!/usr/bin/env python import sys import time from PySide2 import QtCore wait = QtCore.QWaitCondition() mutex = QtCore.QMutex() class Producer(QtCore.QThread): def run(self): time.sleep(2) if __name__ == "__main__": app = QtCore.QCoreApplication(sys.argv) producer = Producer() producer.start() print("About to call Qthread.wait()") producer.wait() # crashes print("Qthread finished")