diff options
author | Mark Shannon <mark@hotpy.org> | 2024-05-01 10:34:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-01 10:34:50 (GMT) |
commit | f6fab21721c8aedc5dca97dbeb6292a067c19bf1 (patch) | |
tree | 53f1c935bc1a956b45f826cb1302c24b285240a7 /Python/bytecodes.c | |
parent | 21c09d9f8195433f34b72ddfa25dd1bda3019ed7 (diff) | |
download | cpython-f6fab21721c8aedc5dca97dbeb6292a067c19bf1.zip cpython-f6fab21721c8aedc5dca97dbeb6292a067c19bf1.tar.gz cpython-f6fab21721c8aedc5dca97dbeb6292a067c19bf1.tar.bz2 |
GH-118095: Make invalidating and clearing executors memory safe (GH-118459)
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r-- | Python/bytecodes.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 28766d6..002b5a3 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -163,9 +163,15 @@ dummy_func( if ((oparg & RESUME_OPARG_LOCATION_MASK) < RESUME_AFTER_YIELD_FROM) { CHECK_EVAL_BREAKER(); } - #if ENABLE_SPECIALIZATION - FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, RESUME_CHECK); - #endif /* ENABLE_SPECIALIZATION */ + assert(this_instr->op.code == RESUME || + this_instr->op.code == RESUME_CHECK || + this_instr->op.code == INSTRUMENTED_RESUME || + this_instr->op.code == ENTER_EXECUTOR); + if (this_instr->op.code == RESUME) { + #if ENABLE_SPECIALIZATION + FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, RESUME_CHECK); + #endif /* ENABLE_SPECIALIZATION */ + } } } |