From d3a77dc571658353a23385651fd8569fee7b5e22 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 23 Aug 2015 13:26:23 -0400 Subject: Make metacov run without errors. --- coverage/collector.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/coverage/collector.py b/coverage/collector.py index 6e2112c0..494ad2ce 100644 --- a/coverage/collector.py +++ b/coverage/collector.py @@ -231,6 +231,17 @@ class Collector(object): """Start collecting trace information.""" if self._collectors: self._collectors[-1].pause() + + try: + # Install the tracer on this thread. + fn = self._start_tracer() + except: + if self._collectors: + self._collectors[-1].resume() + raise + + # If _start_tracer succeeded, then we add ourselves to the global + # stack of collectors. self._collectors.append(self) # Check to see whether we had a fullcoverage tracer installed. @@ -241,9 +252,6 @@ class Collector(object): if tracer0: traces0 = getattr(tracer0, 'traces', []) - # Install the tracer on this thread. - fn = self._start_tracer() - # Replay all the events from fullcoverage into the new trace function. for args in traces0: (frame, event, arg), lineno = args -- cgit v1.2.1