summaryrefslogtreecommitdiff
path: root/coverage/data.py
diff options
context:
space:
mode:
authorlahwran <devnull@localhost>2012-11-12 10:36:41 -0700
committerlahwran <devnull@localhost>2012-11-12 10:36:41 -0700
commit6efe88f2f7c15a46e1fcd25cdd95c8aded005d41 (patch)
treed896dfed4e2ef48dac43cf5e4feee2ed9db3dcfc /coverage/data.py
parent3e0a76b904c695e0d47ff0911979034587ee8f03 (diff)
downloadpython-coveragepy-6efe88f2f7c15a46e1fcd25cdd95c8aded005d41.tar.gz
Fix race condition removing .coverage on init
Diffstat (limited to 'coverage/data.py')
-rw-r--r--coverage/data.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/coverage/data.py b/coverage/data.py
index 4a79807..b7a0842 100644
--- a/coverage/data.py
+++ b/coverage/data.py
@@ -1,6 +1,7 @@
"""Coverage data for Coverage."""
import os
+import errno
from coverage.backward import pickle, sorted # pylint: disable=W0622
from coverage.files import PathAliases
@@ -89,8 +90,12 @@ class CoverageData(object):
def erase(self):
"""Erase the data, both in this object, and from its file storage."""
if self.use_file:
- if self.filename and os.path.exists(self.filename):
- os.remove(self.filename)
+ if self.filename:
+ try:
+ os.remove(self.filename)
+ except OSError as e:
+ if e.errno != errno.ENOENT:
+ raise
self.lines = {}
self.arcs = {}