def kill(self):\r
self.feedback_q.put(None)\r
class AutoGenWorkerInProcess(mp.Process):\r
- def __init__(self,module_queue,data_pipe_file_path,feedback_q,file_lock, share_data,log_q,error_event):\r
+ def __init__(self,module_queue,data_pipe_file_path,feedback_q,file_lock,cache_lock,share_data,log_q,error_event):\r
mp.Process.__init__(self)\r
self.module_queue = module_queue\r
self.data_pipe_file_path =data_pipe_file_path\r
self.feedback_q = feedback_q\r
self.PlatformMetaFileSet = {}\r
self.file_lock = file_lock\r
+ self.cache_lock = cache_lock\r
self.share_data = share_data\r
self.log_q = log_q\r
self.error_event = error_event\r
try:\r
taskname = "Init"\r
with self.file_lock:\r
- if not os.path.exists(self.data_pipe_file_path):\r
+ try:\r
+ self.data_pipe = MemoryDataPipe()\r
+ self.data_pipe.load(self.data_pipe_file_path)\r
+ except:\r
self.feedback_q.put(taskname + ":" + "load data pipe %s failed." % self.data_pipe_file_path)\r
- self.data_pipe = MemoryDataPipe()\r
- self.data_pipe.load(self.data_pipe_file_path)\r
EdkLogger.LogClientInitialize(self.log_q)\r
loglevel = self.data_pipe.Get("LogLevel")\r
if not loglevel:\r
GlobalData.gDatabasePath = self.data_pipe.Get("DatabasePath")\r
GlobalData.gBinCacheSource = self.data_pipe.Get("BinCacheSource")\r
GlobalData.gBinCacheDest = self.data_pipe.Get("BinCacheDest")\r
- GlobalData.gCacheIR = self.data_pipe.Get("CacheIR")\r
+ GlobalData.gCacheIR = self.share_data\r
GlobalData.gEnableGenfdsMultiThread = self.data_pipe.Get("EnableGenfdsMultiThread")\r
GlobalData.file_lock = self.file_lock\r
+ GlobalData.cache_lock = self.cache_lock\r
CommandTarget = self.data_pipe.Get("CommandTarget")\r
pcd_from_build_option = []\r
for pcd_tuple in self.data_pipe.Get("BuildOptPcd"):\r
Ma.GenModuleFilesHash(GlobalData.gCacheIR)\r
Ma.GenPreMakefileHash(GlobalData.gCacheIR)\r
if Ma.CanSkipbyPreMakefileCache(GlobalData.gCacheIR):\r
- continue\r
+ continue\r
\r
Ma.CreateCodeFile(False)\r
- Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.File, Ma.Arch),[]))\r
+ Ma.CreateMakeFile(False,GenFfsList=FfsCmd.get((Ma.MetaFile.Path, Ma.Arch),[]))\r
\r
if GlobalData.gBinCacheSource and CommandTarget in [None, "", "all"]:\r
Ma.GenMakeHeaderFilesHash(GlobalData.gCacheIR)\r
Ma.GenMakeHash(GlobalData.gCacheIR)\r
if Ma.CanSkipbyMakeCache(GlobalData.gCacheIR):\r
continue\r
+ else:\r
+ Ma.PrintFirstMakeCacheMissFile(GlobalData.gCacheIR)\r
except Empty:\r
pass\r
except:\r