Issue #12011: signal.signal() and signal.siginterrupt() raise an OSError,
instead of a RuntimeError: OSError has an errno attribute.
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index e504669..feeae5e 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -324,7 +324,7 @@
else
func = signal_handler;
if (PyOS_setsig(sig_num, func) == SIG_ERR) {
- PyErr_SetFromErrno(PyExc_RuntimeError);
+ PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
old_handler = Handlers[sig_num].func;
@@ -393,7 +393,7 @@
return NULL;
}
if (siginterrupt(sig_num, flag)<0) {
- PyErr_SetFromErrno(PyExc_RuntimeError);
+ PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}