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:44:58 +0000 |
| commit | eda0ed901532ceb55bcf24bbde2c40a0d8759b69 (patch) | |
| tree | 024df50c614e657ecded4b81142e32c5d782409b | |
| parent | d07473d2c25ca116c1b16018d7c3d9bbd3a721bb (diff) | |
| download | poky-eda0ed901532ceb55bcf24bbde2c40a0d8759b69.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.
(Bitbake rev: 6004cbf36c980c2574c1c9153df81a7c55317e17)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 9537239b03..4f01cc10c6 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
| @@ -138,6 +138,13 @@ class BBCooker: | |||
| 138 | if not self.configuration.cmd: | 138 | if not self.configuration.cmd: |
| 139 | self.configuration.cmd = bb.data.getVar("BB_DEFAULT_TASK", self.configuration.data, True) or "build" | 139 | self.configuration.cmd = bb.data.getVar("BB_DEFAULT_TASK", self.configuration.data, True) or "build" |
| 140 | 140 | ||
| 141 | # Take a lock so only one copy of bitbake can run against a given build | ||
| 142 | # directory at a time | ||
| 143 | lockfile = bb.data.expand("${TOPDIR}/bitbake.lock", self.configuration.data) | ||
| 144 | self.lock = bb.utils.lockfile(lockfile, False, False) | ||
| 145 | if not self.lock: | ||
| 146 | bb.fatal("Only one copy of bitbake should be run against a build directory") | ||
| 147 | |||
| 141 | bbpkgs = bb.data.getVar('BBPKGS', self.configuration.data, True) | 148 | bbpkgs = bb.data.getVar('BBPKGS', self.configuration.data, True) |
| 142 | if bbpkgs and len(self.configuration.pkgs_to_build) == 0: | 149 | if bbpkgs and len(self.configuration.pkgs_to_build) == 0: |
| 143 | self.configuration.pkgs_to_build.extend(bbpkgs.split()) | 150 | self.configuration.pkgs_to_build.extend(bbpkgs.split()) |
