]> granicus.if.org Git - python/commitdiff
Only call sigcheck() at the ticker code if we don't have true signals.
authorGuido van Rossum <guido@python.org>
Tue, 21 Jan 1997 06:15:24 +0000 (06:15 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 21 Jan 1997 06:15:24 +0000 (06:15 +0000)
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 ;-).

Python/ceval.c

index accb56eef252e9404d42adc5c7589a404dd4f72f..651066cedad8ab7e94f9ac2fede4520ed1ddd22a 100644 (file)
@@ -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) {