summaryrefslogtreecommitdiffstats
path: root/Parser/intrcheck.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-08-02 03:02:27 (GMT)
committerGuido van Rossum <guido@python.org>1997-08-02 03:02:27 (GMT)
commitaee094cc60b4b05e28cfd9e1a2add1b97ededbb6 (patch)
treeee321e85dc8012f5d8ee150ea003e484f2236422 /Parser/intrcheck.c
parent08c166152e9f882d475b02e2d76a198389b13d0b (diff)
downloadcpython-aee094cc60b4b05e28cfd9e1a2add1b97ededbb6.zip
cpython-aee094cc60b4b05e28cfd9e1a2add1b97ededbb6.tar.gz
cpython-aee094cc60b4b05e28cfd9e1a2add1b97ededbb6.tar.bz2
Added finalization routines.
Diffstat (limited to 'Parser/intrcheck.c')
-rw-r--r--Parser/intrcheck.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/Parser/intrcheck.c b/Parser/intrcheck.c
index 685e066..a2a3145 100644
--- a/Parser/intrcheck.c
+++ b/Parser/intrcheck.c
@@ -49,6 +49,11 @@ PyOS_InitInterrupts()
{
}
+void
+PyOS_FiniInterrupts()
+{
+}
+
int
PyOS_InterruptOccurred()
{
@@ -81,6 +86,11 @@ PyOS_InitInterrupts()
_go32_want_ctrl_break(1 /* TRUE */);
}
+void
+PyOS_FiniInterrupts()
+{
+}
+
int
PyOS_InterruptOccurred()
{
@@ -96,6 +106,11 @@ PyOS_InitInterrupts()
{
}
+void
+PyOS_FiniInterrupts()
+{
+}
+
int
PyOS_InterruptOccurred()
{
@@ -170,10 +185,12 @@ intcatcher(sig)
Py_AddPendingCall(PyErr_CheckSignals, NULL);
}
+static RETSIGTYPE (*old_siginthandler)() = SIG_DFL;
+
void
PyOS_InitInterrupts()
{
- if (signal(SIGINT, SIG_IGN) != SIG_IGN)
+ if ((old_siginthandler = signal(SIGINT, SIG_IGN)) != SIG_IGN)
signal(SIGINT, intcatcher);
#ifdef HAVE_SIGINTERRUPT
/* This is for SunOS and other modern BSD derivatives.
@@ -186,6 +203,12 @@ PyOS_InitInterrupts()
#endif /* HAVE_SIGINTERRUPT */
}
+void
+PyOS_FiniInterrupts()
+{
+ signal(SIGINT, old_siginthandler);
+}
+
int
PyOS_InterruptOccurred()
{