Re: pyqt5_enable_new_onexit_scheme vs. threads

Phil Thompson <[email protected]>
Newsgroups gmane.comp.python.pyqt-pykde
Message-ID <[email protected]>
On 18/09/2019 18:12, Zach Pincus wrote:
> Hello,
> 
> As requested, I tested out  pyqt5_enable_new_onexit_scheme(True) with
> my application on PyQt 5.13.1.
> 
> At exit, I get the following error:
> QThread: Destroyed while thread is still running
> and a segfault.
> 
> The application spins up a background QThread that currently has no
> provision for exiting on termination. (It exists to upload textures to
> an offscreen OpenGL context, and otherwise is just blocked waiting for
> a new texture to upload.) Without the new onexit scheme, this works
> just fine.
> 
> I'm sure this reveals a design flaw in the original application (the
> thread should probably try to exit cleanly, rather than just die
> during application exit), but this is at least one case where the new
> onexit scheme will cause errors to crop up that did not exist before.
> 
> What would be the best way to make the thread exit cleanly? At atexit
> python callback that sets a flag to make the thread exit and then
> waits on the thread? Or connecting (something?) to the aboutToQuit
> signal that does the same? Or should the new onexit scheme not touch
> threads in the first place?

The latter option would be trivial to implement. Given that deleting a 
running thread is guaranteed to cause a crash then it makes sense to 
avoid that if possible - even if the root cause is an application design 
bug.

Phil
_______________________________________________
PyQt mailing list    [email protected]
https://www.riverbankcomputing.com/mailman/listinfo/pyqt
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.