aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bb/cooker.py6
-rw-r--r--lib/bb/server/process.py17
2 files changed, 14 insertions, 9 deletions
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 7d040dcd8..8fe36eba1 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -165,7 +165,7 @@ class BBCooker:
Manages one bitbake build run
"""
- def __init__(self, configuration, featureSet=None, readypipe=None):
+ def __init__(self, configuration, featureSet=None):
self.recipecaches = None
self.skiplist = {}
self.featureset = CookerFeatures()
@@ -233,10 +233,6 @@ class BBCooker:
# Let SIGHUP exit as SIGTERM
signal.signal(signal.SIGHUP, self.sigterm_exception)
- if readypipe:
- os.write(readypipe, b"ready")
- os.close(readypipe)
-
def process_inotify_updates(self):
for n in [self.confignotifier, self.notifier]:
if n.check_events(timeout=0):
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index 5c7dfaefa..6a12f0105 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -388,8 +388,10 @@ class BitBakeServer(object):
self.bitbake_lock.close()
ready = ConnectionReader(self.readypipe)
- r = ready.wait(30)
- if not r:
+ r = ready.poll(30)
+ if r:
+ r = ready.get()
+ if not r or r != "ready":
ready.close()
bb.error("Unable to start bitbake server")
if os.path.exists(logfile):
@@ -404,8 +406,15 @@ class BitBakeServer(object):
print("Starting bitbake server pid %d" % os.getpid())
server = ProcessServer(self.bitbake_lock, self.sock, self.sockname)
self.configuration.setServerRegIdleCallback(server.register_idle_function)
-
- self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset, self.readypipein)
+ writer = ConnectionWriter(self.readypipein)
+ try:
+ self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
+ writer.send("ready")
+ except:
+ writer.send("fail")
+ raise
+ finally:
+ os.close(self.readypipein)
server.cooker = self.cooker
server.server_timeout = self.configuration.server_timeout
server.xmlrpcinterface = self.configuration.xmlrpcinterface