BaseTools: Improve the file saving and copying reliability

BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=2079

The Basetool CopyFileOnChange() and SaveFileOnChange()
functions might raise the IOError occasionally when build
in Windows with multi-process and build cache enabled.
The CopyFileOnChange() and SaveFileOnChange() might be invoked
in multiple sub-processes simultaneously, and this patch adds
global locks to sync these functions invoking which can
harden their reliability.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Signed-off-by: Steven Shi <steven.shi@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
Shi, Steven
2019-08-15 22:26:21 +08:00
committed by Feng, Bob C
parent d01a998612
commit 94459080c1
8 changed files with 119 additions and 42 deletions

View File

@ -24,5 +24,6 @@ class ModuleBuildCacheIR():
self.MakeHashDigest = None
self.MakeHashHexDigest = None
self.MakeHashChain = []
self.CacheCrash = False
self.PreMakeCacheHit = False
self.MakeCacheHit = False