summaryrefslogtreecommitdiffstats
path: root/Python/ceval_macros.h
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2023-07-03 20:28:27 (GMT)
committerGitHub <noreply@github.com>2023-07-03 20:28:27 (GMT)
commite5862113dde7a66b08f1ece542a3cfaf0a3d9080 (patch)
tree1085ca157fffe2548dcdc6227515f19329a6ef8d /Python/ceval_macros.h
parent7f4c8121db62a9f72f00f2d9f73381e82f289581 (diff)
downloadcpython-e5862113dde7a66b08f1ece542a3cfaf0a3d9080.zip
cpython-e5862113dde7a66b08f1ece542a3cfaf0a3d9080.tar.gz
cpython-e5862113dde7a66b08f1ece542a3cfaf0a3d9080.tar.bz2
GH-104584: Fix ENTER_EXECUTOR (GH-106141)
* Check eval-breaker in ENTER_EXECUTOR. * Make sure that frame->prev_instr is set before entering executor.
Diffstat (limited to 'Python/ceval_macros.h')
-rw-r--r--Python/ceval_macros.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/Python/ceval_macros.h b/Python/ceval_macros.h
index 0d41ef5..72800aa 100644
--- a/Python/ceval_macros.h
+++ b/Python/ceval_macros.h
@@ -117,7 +117,9 @@
#define CHECK_EVAL_BREAKER() \
_Py_CHECK_EMSCRIPTEN_SIGNALS_PERIODICALLY(); \
if (_Py_atomic_load_relaxed_int32(&tstate->interp->ceval.eval_breaker)) { \
- goto handle_eval_breaker; \
+ if (_Py_HandlePending(tstate) != 0) { \
+ goto error; \
+ } \
}