Xiang Zhang added the comment:
A simple try ... except ... can set the variable to Py_None:
>>> import threading
>>> def foo():
... try:
... raise RuntimeError
... except:
... pass
... raise
...
>>> threading.Thread(target=foo).start()
>>> Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
self.run()
File "/usr/lib/python3.4/threading.py", line 868, in run
self._target(*self._args, **self._kwargs)
File "<stdin>", line 6, in foo
RuntimeError: No active exception to reraise
In the startup procedure, some c-apis are called and there are patterns like:
try:
import some_module
except ImportError:
some_module = ...
So I think after startup the variable can't be NULL. But we do see a NULL case
here.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue27558>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com