* Richard Purdie : cooker.py: Ensure only one copy of bitbake executes at once
@ 2011-11-10 11:40 git
0 siblings, 0 replies; only message in thread
From: git @ 2011-11-10 11:40 UTC (permalink / raw)
To: bitbake-devel
Module: bitbake.git
Branch: master
Commit: 6004cbf36c980c2574c1c9153df81a7c55317e17
URL: http://git.openembedded.org/?p=bitbake.git&a=commit;h=6004cbf36c980c2574c1c9153df81a7c55317e17
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Tue Nov 8 17:52:44 2011 +0000
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>
---
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 546a92c..ee8323e 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())
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-11-10 11:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-10 11:40 Richard Purdie : cooker.py: Ensure only one copy of bitbake executes at once git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.