diff options
author | Laurentiu Palcu <laurentiu.palcu@intel.com> | 2014-01-13 10:01:53 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-02-11 11:53:39 +0000 |
commit | 1b3e7f0e277615cb63fedc1e5d844b5e1002b9d9 (patch) | |
tree | 80fe38c95285a08b00fcd45f90eceacc7f5e537c /meta/lib | |
parent | 2ead36fabdfda0c472d412af0789be766b64688b (diff) | |
download | openembedded-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')
-rw-r--r-- | meta/lib/oe/package_manager.py | 17 |
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): |