mirror_edk2/BaseTools/Source/Python
Shi, Steven 2378ea5515 BaseTools:Introduce CopyFileOnChange() function to copy cache files
BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=1894

Basetool need a CopyFileOnChange() function to avoid cache
file writing race in multi-thread build. Some platforms
build fail with file IO writing race issue when the
build cache is enabled to store cache files in multi-threads.
This is because common same library cache files (e.g. some
libs in MdePkg) can be stored by many different driver modules'
build threads at same time. Current build cache need a function
to check whether the same cache file already exist, and only
copy source file if it is different from the destination file.

This patch introduces an atomic copy function to avoid duplicated
cache files copy.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Christian Rodriguez <christian.rodriguez@intel.com>
Signed-off-by: Steven Shi <steven.shi@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
2019-06-17 17:00:46 +08:00
..
AutoGen BaseTools:Introduce CopyFileOnChange() function to copy cache files 2019-06-17 17:00:46 +08:00
BPDG BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
build BaseTools:Build Cache output notification message 2019-06-17 17:00:45 +08:00
Capsule BaseTools:Coding problems cause can not encode FMP Auth Header 2019-04-16 13:14:14 +08:00
Common BaseTools:Introduce CopyFileOnChange() function to copy cache files 2019-06-17 17:00:46 +08:00
CommonDataClass BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
Ecc BaseTools:ECC report errors on account of analyze special characters 2019-05-08 09:41:42 +08:00
Eot BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
GenFds BaseTools:Make BaseTools support new rules to generate RAW FFS FILE 2019-06-10 19:48:50 +08:00
GenPatchPcdTable BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
PatchPcdValue BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
Pkcs7Sign BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
Rsa2048Sha256Sign BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
Table BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
TargetTool BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
Trim BaseTools:Update mailing list address in BaseTools error messages 2019-05-22 09:15:55 +08:00
UPT BaseTools:Update mailing list address in BaseTools error messages 2019-05-22 09:15:55 +08:00
Workspace BaseTools: Correct the value assignment for StructurePcd 2019-05-10 17:06:44 +08:00
GNUmakefile BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
Makefile BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00
sitecustomize.py BaseTools: Replace BSD License with BSD+Patent License 2019-04-09 09:10:20 -07:00