Tidy file removal cleanup & remove race condition on file existence.

llvm-svn: 66281
This commit is contained in:
Daniel Dunbar 2009-03-06 18:32:01 +00:00
parent 8498d2dd2b
commit 3a45e4fffb
1 changed files with 17 additions and 9 deletions

View File

@ -229,18 +229,26 @@ class Driver(object):
self.executeJobs(args, jobs)
except:
if not args.getLastArg(self.parser.saveTempsOption):
for f in self.resultFiles:
# Fail if removing a result fails:
if os.path.exists(f):
os.remove(f)
# Fail if removing a result fails.
self.removeFiles(self.resultFiles, failOnError=True)
raise
finally:
for f in self.tempFiles:
# Ignore failures in removing temporary files
self.removeFiles(self.resultFiles, failOnError=False)
def removeFiles(self, fileList, failOnError=False):
for f in fileList:
try:
os.remove(f)
except OSError,e:
if failOnError:
import errno
if e.errno != errno.ENOENT:
raise
except:
pass
if failOnError:
raise
def executeJobs(self, args, jobs):
vArg = args.getLastArg(self.parser.vOption)