gh-144690: Add C API for trace/profile callback registration by SubbaraoGarlapati · Pull Request #144691 · python/cpython (original) (raw)
This PR adds a C API for receiving notifications when sys.settrace() orsys.setprofile() are called, addressing gh-144690.
Changes
- Add
PyUnstable_SetEvalCallback()andPyUnstable_GetEvalCallback()to
register/retrieve callbacks for trace/profile changes - Add
PyUnstable_EvalEventenum withTRACE_SET,TRACE_CLEAR,PROFILE_SET,PROFILE_CLEARevents - Callbacks are invoked from
_PyEval_SetTrace(),_PyEval_SetTraceAllThreads(),_PyEval_SetProfile(), and_PyEval_SetProfileAllThreads()
API
typedef int (*PyUnstable_EvalCallback)(PyUnstable_EvalEvent event, void *data); int PyUnstable_SetEvalCallback(PyUnstable_EvalCallback callback, void *data); PyUnstable_EvalCallback PyUnstable_GetEvalCallback(void **data);