aboutsummaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/package_manager.py
diff options
context:
space:
mode:
authorLaurentiu Palcu <laurentiu.palcu@intel.com>2014-01-13 10:01:53 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-02-11 11:53:39 +0000
commit1b3e7f0e277615cb63fedc1e5d844b5e1002b9d9 (patch)
tree80fe38c95285a08b00fcd45f90eceacc7f5e537c /meta/lib/oe/package_manager.py
parent2ead36fabdfda0c472d412af0789be766b64688b (diff)
downloadopenembedded-core-contrib-1b3e7f0e277615cb63fedc1e5d844b5e1002b9d9.tar.gz
lib/oe/package_manager.py: add deploy dir locking mechanism
This is needed in order to serialize the index file creation when multiple do_rootfs tasks are running in the same time. (From OE-Core rev: cb03d15482569c2e56232c921526938dcecfdb68) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/package_manager.py')
-rw-r--r--meta/lib/oe/package_manager.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 93ca78acb2..f84644c62d 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -27,6 +27,8 @@ class PackageManager(object):
def __init__(self, d):
self.d = d
+ self.deploy_dir = None
+ self.deploy_lock = None
"""
Update the package manager package database.
@@ -110,6 +112,21 @@ class PackageManager(object):
self.install(complementary_pkgs.split(), attempt_only=True)
+ def deploy_dir_lock(self):
+ if self.deploy_dir is None:
+ raise RuntimeError("deploy_dir is not set!")
+
+ lock_file_name = os.path.join(self.deploy_dir, "deploy.lock")
+
+ self.deploy_lock = bb.utils.lockfile(lock_file_name)
+
+ def deploy_dir_unlock(self):
+ if self.deploy_lock is None:
+ return
+
+ bb.utils.unlockfile(self.deploy_lock)
+
+ self.deploy_lock = None
class RpmPM(PackageManager):
def __init__(self):