From f51815426e065740386b2a5b81c23832f11e27c7 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 7 Nov 1997 19:20:34 +0000 Subject: Fix problem discovered by Barry: if you hit ^C to sys.stdin.readline(), you get a fatal error (no current thread). This is because there was a call to PyErr_CheckSignals() while there was no current thread. I wonder how many more of these we find... I bnetter go hunting for PyErr_CheckSignals() now... --- Objects/fileobject.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Objects/fileobject.c b/Objects/fileobject.c index a0d05c4..cd8a730 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -541,18 +541,18 @@ getline(f, n) for (;;) { if ((c = getc(fp)) == EOF) { clearerr(fp); + Py_BLOCK_THREADS if (PyErr_CheckSignals()) { - Py_BLOCK_THREADS Py_DECREF(v); return NULL; } if (n < 0 && buf == BUF(v)) { - Py_BLOCK_THREADS Py_DECREF(v); PyErr_SetString(PyExc_EOFError, "EOF when reading a line"); return NULL; } + Py_UNBLOCK_THREADS break; } if ((*buf++ = c) == '\n') { -- cgit v0.12