gh-141579: Fix perf_jit backend in sys.activate_stack_trampoline() (#141580)
This commit is contained in:
committed by
GitHub
parent
53d65c840e
commit
4ceb077c5c
@@ -238,6 +238,24 @@ class TestPerfTrampoline(unittest.TestCase):
|
||||
"""
|
||||
assert_python_ok("-c", code, PYTHON_JIT="0")
|
||||
|
||||
def test_sys_api_perf_jit_backend(self):
|
||||
code = """if 1:
|
||||
import sys
|
||||
sys.activate_stack_trampoline("perf_jit")
|
||||
assert sys.is_stack_trampoline_active() is True
|
||||
sys.deactivate_stack_trampoline()
|
||||
assert sys.is_stack_trampoline_active() is False
|
||||
"""
|
||||
assert_python_ok("-c", code, PYTHON_JIT="0")
|
||||
|
||||
def test_sys_api_with_existing_perf_jit_trampoline(self):
|
||||
code = """if 1:
|
||||
import sys
|
||||
sys.activate_stack_trampoline("perf_jit")
|
||||
sys.activate_stack_trampoline("perf_jit")
|
||||
"""
|
||||
assert_python_ok("-c", code, PYTHON_JIT="0")
|
||||
|
||||
|
||||
def is_unwinding_reliable_with_frame_pointers():
|
||||
cflags = sysconfig.get_config_var("PY_CORE_CFLAGS")
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
Fix :func:`sys.activate_stack_trampoline` to properly support the
|
||||
``perf_jit`` backend. Patch by Pablo Galindo.
|
||||
@@ -2380,6 +2380,7 @@ sys_activate_stack_trampoline_impl(PyObject *module, const char *backend)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (strcmp(backend, "perf_jit") == 0) {
|
||||
_PyPerf_Callbacks cur_cb;
|
||||
_PyPerfTrampoline_GetCallbacks(&cur_cb);
|
||||
@@ -2390,7 +2391,6 @@ sys_activate_stack_trampoline_impl(PyObject *module, const char *backend)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
PyErr_Format(PyExc_ValueError, "invalid backend: %s", backend);
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user