bpo-43760: Add PyThreadState_EnterTracing() (GH-28542)

Add PyThreadState_EnterTracing() and PyThreadState_LeaveTracing()
functions to the limited C API to suspend and resume tracing and
profiling.

Add an unit test on the PyThreadState C API to _testcapi.

Add also internal _PyThreadState_DisableTracing() and
_PyThreadState_ResetTracing().
This commit is contained in:
Victor Stinner 2021-10-15 16:06:30 +02:00 committed by GitHub
parent 354c35220d
commit 547d26aa08
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 146 additions and 25 deletions

View file

@ -1201,6 +1201,22 @@ PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
}
void
PyThreadState_EnterTracing(PyThreadState *tstate)
{
tstate->tracing++;
_PyThreadState_DisableTracing(tstate);
}
void
PyThreadState_LeaveTracing(PyThreadState *tstate)
{
tstate->tracing--;
_PyThreadState_ResetTracing(tstate);
}
/* Routines for advanced debuggers, requested by David Beazley.
Don't use unless you know what you are doing! */