Clean up on exit application

Heya,

I have a quick question. I used your workermanager 6 example to build it into my application.

However I notice if I click the top right X to close the application, the threads just carry on running regardless!

What is the best way to go about closing everything and cleaning up on app exit?

A point in the right direction greatly appreciated!
Thanks

I have just solved this with the following solution, please let me know if it is correct way or not. Thanks.

in my ui class (that inherites from a designer ui py file) I placed this function to catch the close event and issue a kill all to my worker managers (one set are providing a camera snapshot feed and the other is inference engines):

    def closeEvent(self, event):
        self.feed_workers.kill_all()
        self.engine_workers.kill_all()
        print('x button clicked')
        event.accept()

I then had an issue of it bugging when closing. I found out I had to store the app in a variable and pass it to sys exit (I still dont fully understand why! but it works):

app.exec_() changed to:

app_ref = app.exec_()
sys.exit(app_ref)

Now when I click the top right X it kills the workers and exits error free.