summaryrefslogtreecommitdiff
path: root/coverage/ctracer/tracer.c
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2017-03-03 22:28:47 -0500
committerNed Batchelder <ned@nedbatchelder.com>2017-03-03 22:28:47 -0500
commitd679d5442ea8d39111e02b8d3251e34418287e50 (patch)
tree5f05ecc5a5d8a07063845f5797d02324a61eee6c /coverage/ctracer/tracer.c
parentc2b922448ac753630c3170eb2a5bd3a00016aa79 (diff)
downloadpython-coveragepy-git-d679d5442ea8d39111e02b8d3251e34418287e50.tar.gz
Collecting continues after saving data. #79 #448
Diffstat (limited to 'coverage/ctracer/tracer.c')
-rw-r--r--coverage/ctracer/tracer.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/coverage/ctracer/tracer.c b/coverage/ctracer/tracer.c
index 619ccee9..ee112d83 100644
--- a/coverage/ctracer/tracer.c
+++ b/coverage/ctracer/tracer.c
@@ -340,8 +340,8 @@ CTracer_handle_call(CTracer *self, PyFrameObject *frame)
CFileDisposition * pdisp = NULL;
-
STATS( self->stats.calls++; )
+ self->activity = TRUE;
/* Grow the stack. */
if (CTracer_set_pdata_stack(self) < 0) {
@@ -1034,7 +1034,25 @@ CTracer_stop(CTracer *self, PyObject *args_unused)
}
static PyObject *
-CTracer_get_stats(CTracer *self)
+CTracer_activity(CTracer *self, PyObject *args_unused)
+{
+ if (self->activity) {
+ Py_RETURN_TRUE;
+ }
+ else {
+ Py_RETURN_FALSE;
+ }
+}
+
+static PyObject *
+CTracer_reset_activity(CTracer *self, PyObject *args_unused)
+{
+ self->activity = FALSE;
+ Py_RETURN_NONE;
+}
+
+static PyObject *
+CTracer_get_stats(CTracer *self, PyObject *args_unused)
{
#if COLLECT_STATS
return Py_BuildValue(
@@ -1103,6 +1121,12 @@ CTracer_methods[] = {
{ "get_stats", (PyCFunction) CTracer_get_stats, METH_VARARGS,
PyDoc_STR("Get statistics about the tracing") },
+ { "activity", (PyCFunction) CTracer_activity, METH_VARARGS,
+ PyDoc_STR("Has there been any activity?") },
+
+ { "reset_activity", (PyCFunction) CTracer_reset_activity, METH_VARARGS,
+ PyDoc_STR("Reset the activity flag") },
+
{ NULL }
};