You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to figure out why CTRL-C isn't working in my Linux application.
I'm periodically checking PyErr_CheckSignals in my inner loop in the main thread and it never seems to be firing -- but python is clearly seeing it at some point, as when I close the UI window the python code throws the KeyboardInterrupt and everything crashes because a thread tries to take the GIL during shutdown.
That is not what this issue is about, but it's useful context -- I'm sure I'm not doing something right, just need to figure out the right way to do it.
issue
However, in my search the following two links come up:
Basically, PyDict_Get/Set/Del can potentially swallow errors (including signals!) if the WithError variants aren't used. There are a few places in pybind11 where the less safe versions of these functions are used, which could be potentially contributing to my problem. It seems the WithError variants were introduced in Python 3, so to switch to these would require a Python 2.7 shim.
Has anyone else been contemplating this? There aren't that many places where errors aren't checked in pybind11, so it probably wouldn't be terrible to find them all and squash em. Ideally it would be nice if we could add some kind of linter to make sure nobody introduces such things in the future, but that seems hard.
Reproducible example code
N/A
The text was updated successfully, but these errors were encountered:
Issue description
context
I'm trying to figure out why CTRL-C isn't working in my Linux application.
I'm periodically checking PyErr_CheckSignals in my inner loop in the main thread and it never seems to be firing -- but python is clearly seeing it at some point, as when I close the UI window the python code throws the KeyboardInterrupt and everything crashes because a thread tries to take the GIL during shutdown.
That is not what this issue is about, but it's useful context -- I'm sure I'm not doing something right, just need to figure out the right way to do it.
issue
However, in my search the following two links come up:
Basically,
PyDict_Get/Set/Del
can potentially swallow errors (including signals!) if the WithError variants aren't used. There are a few places in pybind11 where the less safe versions of these functions are used, which could be potentially contributing to my problem. It seems the WithError variants were introduced in Python 3, so to switch to these would require a Python 2.7 shim.Has anyone else been contemplating this? There aren't that many places where errors aren't checked in pybind11, so it probably wouldn't be terrible to find them all and squash em. Ideally it would be nice if we could add some kind of linter to make sure nobody introduces such things in the future, but that seems hard.
Reproducible example code
N/A
The text was updated successfully, but these errors were encountered: