summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
authorRodrigue Cloutier <rodrigue.cloutier@ubisoft.com>2015-12-10 10:22:06 -0500
committerRodrigue Cloutier <rodrigue.cloutier@ubisoft.com>2015-12-10 10:22:06 -0500
commitc411cc843c6cb70620b16cbaf12a5a0610f27f21 (patch)
tree62abcc7cbbec5df27c1cd60741b4c269e1fcf8ee /coverage
parent667b52845a87a4a8c1c5bec59f0366de3c896bf9 (diff)
downloadpython-coveragepy-git-c411cc843c6cb70620b16cbaf12a5a0610f27f21.tar.gz
Fix Windows support for multiprocessing monkey patch
--HG-- branch : windows_multiprocessing_support
Diffstat (limited to 'coverage')
-rw-r--r--coverage/monkey.py42
1 files changed, 22 insertions, 20 deletions
diff --git a/coverage/monkey.py b/coverage/monkey.py
index c4ec68c6..b896dbf5 100644
--- a/coverage/monkey.py
+++ b/coverage/monkey.py
@@ -11,6 +11,28 @@ import sys
# monkey-patched.
PATCHED_MARKER = "_coverage$patched"
+if sys.version_info >= (3, 4):
+
+ klass = multiprocessing.process.BaseProcess
+else:
+ klass = multiprocessing.Process
+
+original_bootstrap = klass._bootstrap
+
+
+class ProcessWithCoverage(klass):
+ """A replacement for multiprocess.Process that starts coverage."""
+ def _bootstrap(self):
+ """Wrapper around _bootstrap to start coverage."""
+ from coverage import Coverage
+ cov = Coverage(data_suffix=True)
+ cov.start()
+ try:
+ return original_bootstrap(self)
+ finally:
+ cov.stop()
+ cov.save()
+
def patch_multiprocessing():
"""Monkey-patch the multiprocessing module.
@@ -23,26 +45,6 @@ def patch_multiprocessing():
return
if sys.version_info >= (3, 4):
- klass = multiprocessing.process.BaseProcess
- else:
- klass = multiprocessing.Process
-
- original_bootstrap = klass._bootstrap
-
- class ProcessWithCoverage(klass):
- """A replacement for multiprocess.Process that starts coverage."""
- def _bootstrap(self):
- """Wrapper around _bootstrap to start coverage."""
- from coverage import Coverage
- cov = Coverage(data_suffix=True)
- cov.start()
- try:
- return original_bootstrap(self)
- finally:
- cov.stop()
- cov.save()
-
- if sys.version_info >= (3, 4):
klass._bootstrap = ProcessWithCoverage._bootstrap
else:
multiprocessing.Process = ProcessWithCoverage