diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-11-08 17:52:44 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-11-10 11:39:28 +0000 |
commit | 6004cbf36c980c2574c1c9153df81a7c55317e17 (patch) | |
tree | eb0816059b268059350a2aad7cdb6492c9958a17 | |
parent | f421ef819f00ac659504d9af41bcc8323422ff8c (diff) | |
download | bitbake-6004cbf36c980c2574c1c9153df81a7c55317e17.tar.gz |
cooker.py: Ensure only one copy of bitbake executes at once
The bitbake codebase makes assumptions that only one copy is active
against a given build directory at a given time. This patch adds a
lockfile in TOPDIR to ensure that is the case.
Note that no unlock is needed, that is automatically dropped when
execution terminates.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | lib/bb/cooker.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 546a92c7d..ee8323ecb 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -135,6 +135,13 @@ class BBCooker: self.configuration.data = None self.loadConfigurationData() + # Take a lock so only one copy of bitbake can run against a given build + # directory at a time + lockfile = bb.data.expand("${TOPDIR}/bitbake.lock", self.configuration.data) + self.lock = bb.utils.lockfile(lockfile, False, False) + if not self.lock: + bb.fatal("Only one copy of bitbake should be run against a build directory") + bbpkgs = bb.data.getVar('BBPKGS', self.configuration.data, True) if bbpkgs and len(self.configuration.pkgs_to_build) == 0: self.configuration.pkgs_to_build.extend(bbpkgs.split()) |