diff options
author | Ned Batchelder <nedbat@gmail.com> | 2015-12-24 09:02:59 -0500 |
---|---|---|
committer | Ned Batchelder <nedbat@gmail.com> | 2015-12-24 09:02:59 -0500 |
commit | 846426f10779bc0c97b4755b901a8b58e5405e09 (patch) | |
tree | 95dfb7a3eea55c21eabfc717a658dbaddde79e4e /coverage/monkey.py | |
parent | ae91d45616dbc4dddcd66955b41ffb5fa420ddda (diff) | |
parent | 24f2dd5b4f8954133c4767905a67352d50e3e465 (diff) | |
download | python-coveragepy-git-846426f10779bc0c97b4755b901a8b58e5405e09.tar.gz |
Merged in rodcloutier/coverage.py/windows_multiprocessing_support (pull request #76)
Fix Windows support for multiprocessing monkey patch
Diffstat (limited to 'coverage/monkey.py')
-rw-r--r-- | coverage/monkey.py | 42 |
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 |