Kaydet (Commit) 70d44787 authored tarafından Guido van Rossum's avatar Guido van Rossum

Only call sigcheck() at the ticker code if we don't have true signals.

This is safe now that both intrcheck() and signalmodule.c schedule a
sigcheck() call via Py_AddPendingCall().

This gives another 7% speedup (never run such a test twice ;-).
üst fcdd0e40
......@@ -92,7 +92,6 @@ static object *apply_subscript PROTO((object *, object *));
static object *loop_subscript PROTO((object *, object *));
static int slice_index PROTO((object *, int, int *));
static object *apply_slice PROTO((object *, object *, object *));
static object *build_slice PROTO((object *, object *, object *));
static int assign_subscript PROTO((object *, object *, object *));
static int assign_slice PROTO((object *, object *, object *, object *));
static int cmp_exception PROTO((object *, object *));
......@@ -557,7 +556,7 @@ eval_code2(co, globals, locals,
So we do it only every Nth instruction.
The ticker is reset to zero if there are pending
calls (see Py_AddPendingCalls() and
calls (see Py_AddPendingCall() and
Py_MakePendingCalls() above). */
if (--ticker < 0) {
......@@ -568,10 +567,15 @@ eval_code2(co, globals, locals,
goto on_error;
}
}
#ifndef HAVE_SIGNAL_H /* Is this the right #define? */
/* If we have true signals, the signal handler will call
Py_AddPendingCall() so we don't have to call sigcheck().
On the Mac and DOS, alas, we have to call it. */
if (sigcheck()) {
why = WHY_EXCEPTION;
goto on_error;
}
#endif
#ifdef WITH_THREAD
if (interpreter_lock) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment