Andrew Suffield <asuffi...@suffields.me.uk> added the comment: I think I've tripped over a variation on this theme using pyqt and 2.7:
When working in a QThread, the PyGILState_Ensure call when transitioning control from Qt to python will frequently allocate a new thread state - because every time control returns to the Qt event loop, gilstate_counter is likely to become zero. If a generator is kept around longer than this, it becomes quite likely to have an older thread state in f_tstate. This happens all the time. The access that blows up on me is PyEval_GetRestricted, since PyFrame_IsRestricted checks f_tstate. Annoyingly this debris is still called on the possibly-restricted operations even when restricted execution is nowhere in sight. Hence, any use of open() in a long-lived generator in a QThread is probably going to crash. Patch against 2.7? ---------- nosy: +asuffield _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue14432> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com