This closes patch:
[ 960406 ] unblock signals in threads
although the changes do not correspond exactly to any patch attached to
that report.
Non-main threads no longer have all signals masked.
A different interface to readline is used.
The handling of signals inside calls to PyOS_Readline is now rather
different.
These changes are all a bit scary! Review and cross-platform testing
much appreciated.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 3604601..10e59c9 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1589,7 +1589,8 @@
prompt);
Py_XDECREF(po);
if (s == NULL) {
- PyErr_SetNone(PyExc_KeyboardInterrupt);
+ if (!PyErr_Occurred())
+ PyErr_SetNone(PyExc_KeyboardInterrupt);
return NULL;
}
if (*s == '\0') {