Tidy file removal cleanup & remove race condition on file existence.
llvm-svn: 66281
This commit is contained in:
parent
8498d2dd2b
commit
3a45e4fffb
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue