From defc0291039184b640779e38471ece5e6d3c8cb8 Mon Sep 17 00:00:00 2001 From: Alfredo Moralejo Date: Tue, 2 Jul 2024 10:48:24 +0200 Subject: [PATCH] Add support for python 3.13 _PyEval_SetProfile() has been moved to internal pycore_ceval.h and it is not longer exported [1]. PyEval_SetProfileAllThreads was introduced in 3.12 [2]. [1] https://github.com/python/cpython/commit/c494fb333b57bdf43fc90189fc29a00c293b2987 [2] https://github.com/python/cpython/commits/76af5c9153394f3d07562427168711a68f54ec66 --- yappi/_yappi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/yappi/_yappi.c b/yappi/_yappi.c index 459f4dd..56187c9 100644 --- a/yappi/_yappi.c +++ b/yappi/_yappi.c @@ -1284,7 +1284,9 @@ _resume_greenlet_ctx(_ctx *ctx) static void _eval_setprofile(PyThreadState *ts) { -#if PY_VERSION_HEX > 0x030b0000 +#if PY_VERSION_HEX > 0x030c0000 + PyEval_SetProfileAllThreads(_yapp_callback, NULL); +#elif PY_VERSION_HEX > 0x030b0000 _PyEval_SetProfile(ts, _yapp_callback, NULL); #elif PY_VERSION_HEX < 0x030a00b1 ts->use_tracing = 1; @@ -1298,7 +1300,9 @@ _eval_setprofile(PyThreadState *ts) static void _eval_unsetprofile(PyThreadState *ts) { -#if PY_VERSION_HEX > 0x030b0000 +#if PY_VERSION_HEX > 0x030c0000 + PyEval_SetProfileAllThreads(NULL, NULL); +#elif PY_VERSION_HEX > 0x030b0000 _PyEval_SetProfile(ts, NULL, NULL); #elif PY_VERSION_HEX < 0x030a00b1 ts->use_tracing = 0;