]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oe/package_manager.py: DpkgPM, use lock on deploy dir
authorLaurentiu Palcu <laurentiu.palcu@intel.com>
Tue, 28 Jan 2014 12:43:14 +0000 (14:43 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 11 Feb 2014 11:50:31 +0000 (11:50 +0000)
Lock deploy directory against concurrent index creation.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
meta/lib/oe/package_manager.py

index 8a58d611be3b1be49468677547d9031138363573..2e5aa82568d044063b0fefd062b40e3a4dced28a 100644 (file)
@@ -1086,6 +1086,8 @@ class DpkgPM(PackageManager):
     def update(self):
         os.environ['APT_CONFIG'] = self.apt_conf_file
 
+        self.deploy_dir_lock()
+
         cmd = "%s update" % self.apt_get_cmd
 
         try:
@@ -1094,6 +1096,8 @@ class DpkgPM(PackageManager):
             bb.fatal("Unable to update the package index files. Command %s "
                      "returned %d" % (e.cmd, e.returncode))
 
+        self.deploy_dir_unlock()
+
     def install(self, pkgs, attempt_only=False):
         os.environ['APT_CONFIG'] = self.apt_conf_file
 
@@ -1154,6 +1158,8 @@ class DpkgPM(PackageManager):
         dpkg_scanpackages = bb.utils.which(os.getenv('PATH'), "dpkg-scanpackages")
         gzip = bb.utils.which(os.getenv('PATH'), "gzip")
 
+        self.deploy_dir_lock()
+
         index_cmds = []
         deb_dirs_found = False
         for arch in arch_list:
@@ -1178,6 +1184,8 @@ class DpkgPM(PackageManager):
         pool.close()
         pool.join()
 
+        self.deploy_dir_unlock()
+
         for result in results:
             if result is not None:
                 bb.fatal(result)