summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/server/process.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/server/process.py')
-rw-r--r--bitbake/lib/bb/server/process.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py
index 9e5e709f04..38b923fe2d 100644
--- a/bitbake/lib/bb/server/process.py
+++ b/bitbake/lib/bb/server/process.py
@@ -395,11 +395,16 @@ class BitBakeServer(object):
395 bb.daemonize.createDaemon(self._startServer, logfile) 395 bb.daemonize.createDaemon(self._startServer, logfile)
396 self.sock.close() 396 self.sock.close()
397 self.bitbake_lock.close() 397 self.bitbake_lock.close()
398 os.close(self.readypipein)
398 399
399 ready = ConnectionReader(self.readypipe) 400 ready = ConnectionReader(self.readypipe)
400 r = ready.poll(30) 401 r = ready.poll(30)
401 if r: 402 if r:
402 r = ready.get() 403 try:
404 r = ready.get()
405 except EOFError:
406 # Trap the child exitting/closing the pipe and error out
407 r = None
403 if not r or r != "ready": 408 if not r or r != "ready":
404 ready.close() 409 ready.close()
405 bb.error("Unable to start bitbake server") 410 bb.error("Unable to start bitbake server")
@@ -425,21 +430,16 @@ class BitBakeServer(object):
425 bb.error("Server log for this session (%s):\n%s" % (logfile, "".join(lines))) 430 bb.error("Server log for this session (%s):\n%s" % (logfile, "".join(lines)))
426 raise SystemExit(1) 431 raise SystemExit(1)
427 ready.close() 432 ready.close()
428 os.close(self.readypipein)
429 433
430 def _startServer(self): 434 def _startServer(self):
431 print(self.start_log_format % (os.getpid(), datetime.datetime.now().strftime(self.start_log_datetime_format))) 435 print(self.start_log_format % (os.getpid(), datetime.datetime.now().strftime(self.start_log_datetime_format)))
432 server = ProcessServer(self.bitbake_lock, self.sock, self.sockname) 436 server = ProcessServer(self.bitbake_lock, self.sock, self.sockname)
433 self.configuration.setServerRegIdleCallback(server.register_idle_function) 437 self.configuration.setServerRegIdleCallback(server.register_idle_function)
438 os.close(self.readypipe)
434 writer = ConnectionWriter(self.readypipein) 439 writer = ConnectionWriter(self.readypipein)
435 try: 440 self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset)
436 self.cooker = bb.cooker.BBCooker(self.configuration, self.featureset) 441 writer.send("ready")
437 writer.send("ready") 442 writer.close()
438 except:
439 writer.send("fail")
440 raise
441 finally:
442 os.close(self.readypipein)
443 server.cooker = self.cooker 443 server.cooker = self.cooker
444 server.server_timeout = self.configuration.server_timeout 444 server.server_timeout = self.configuration.server_timeout
445 server.xmlrpcinterface = self.configuration.xmlrpcinterface 445 server.xmlrpcinterface = self.configuration.xmlrpcinterface