]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/AutoGenWorker.py
BaseTools: remove unnecessary calls of os.exist
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / AutoGenWorker.py
index 30d2f96fc74ca2cb2821a993a76c6bacc7aba7ed..94ea61a4870b9c44300c7b7e444f43ee00a0f8bd 100755 (executable)
@@ -133,7 +133,7 @@ class AutoGenManager(threading.Thread):
     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
@@ -141,6 +141,7 @@ class AutoGenWorkerInProcess(mp.Process):
         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
@@ -154,10 +155,11 @@ class AutoGenWorkerInProcess(mp.Process):
         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
@@ -184,9 +186,10 @@ class AutoGenWorkerInProcess(mp.Process):
             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
@@ -236,10 +239,10 @@ class AutoGenWorkerInProcess(mp.Process):
                     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