summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/collector.py5
-rw-r--r--coverage/control.py10
2 files changed, 11 insertions, 4 deletions
diff --git a/coverage/collector.py b/coverage/collector.py
index 5bbd02e..6ea419e 100644
--- a/coverage/collector.py
+++ b/coverage/collector.py
@@ -148,6 +148,9 @@ class Collector(object):
# trace function.
self._trace_class = Tracer or PyTracer
+ def __repr__(self):
+ return "<Collector at 0x%x>" % id(self)
+
def tracer_name(self):
"""Return the class name of the tracer we're using."""
return self._trace_class.__name__
@@ -196,6 +199,7 @@ class Collector(object):
if self._collectors:
self._collectors[-1].pause()
self._collectors.append(self)
+ #print >>sys.stderr, "Started: %r" % self._collectors
# Install the tracer on this thread.
self._start_tracer()
# Install our installation tracer in threading, to jump start other
@@ -204,6 +208,7 @@ class Collector(object):
def stop(self):
"""Stop collecting trace information."""
+ #print >>sys.stderr, "Stopping: %r" % self._collectors
assert self._collectors
assert self._collectors[-1] is self
diff --git a/coverage/control.py b/coverage/control.py
index 674bb15..7efc349 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -1,6 +1,6 @@
"""Core control stuff for Coverage."""
-import os, socket
+import atexit, os, socket
from coverage.annotate import AnnotateReporter
from coverage.backward import string_class # pylint: disable-msg=W0622
@@ -56,7 +56,8 @@ class coverage(object):
self.cover_pylib = cover_pylib
self.auto_data = auto_data
-
+ self.atexit_registered = False
+
self.exclude_re = ""
self.exclude_list = []
@@ -168,8 +169,9 @@ class coverage(object):
if self.auto_data:
self.load()
# Save coverage data when Python exits.
- import atexit
- atexit.register(self.save)
+ if not self.atexit_registered:
+ atexit.register(self.save)
+ self.atexit_registered = True
self.collector.start()
def stop(self):