diff options
author | Olivier Grisel <olivier.grisel@ensta.org> | 2017-09-04 14:22:19 +0200 |
---|---|---|
committer | Olivier Grisel <olivier.grisel@ensta.org> | 2017-09-04 14:22:19 +0200 |
commit | 6f79cf1d20452bfd6222410165e13a1b75e1b5bb (patch) | |
tree | 3d48b5dbcc54c6ad7f12ea6ae52c6e04419fa5e8 /coverage/ctracer/tracer.c | |
parent | 05bff02a59f50bb3723b86cc4b5ddcac95987d7f (diff) | |
download | python-coveragepy-git-6f79cf1d20452bfd6222410165e13a1b75e1b5bb.tar.gz |
FIX always remove the callback from the callback itself
--HG--
branch : fix-thread-safety
Diffstat (limited to 'coverage/ctracer/tracer.c')
-rw-r--r-- | coverage/ctracer/tracer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/coverage/ctracer/tracer.c b/coverage/ctracer/tracer.c index 236fbbfa..0ade7412 100644 --- a/coverage/ctracer/tracer.c +++ b/coverage/ctracer/tracer.c @@ -1035,7 +1035,10 @@ static PyObject * CTracer_stop(CTracer *self, PyObject *args_unused) { if (self->started) { - PyEval_SetTrace(NULL, NULL); + /* Set the started flag only. The actual call to + PyEval_SetTrace(NULL, NULL) is delegated to the callback + itself to ensure that it called from the right thread. + */ self->started = FALSE; } |