summaryrefslogtreecommitdiffstats
path: root/lib/bb/server/process.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-24 16:49:40 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-24 17:48:24 +0100
commitee5d2c92dcce89ccb701e028ffc6419eb315f5ce (patch)
treec6722cd01e934d8c44d2224ddfc7f87c06600edf /lib/bb/server/process.py
parent3caa43b665604475d2c87ba505efb0b9fca9c2e9 (diff)
downloadbitbake-ee5d2c92dcce89ccb701e028ffc6419eb315f5ce.tar.gz
server/process: Move the socket code to server process only
The sock object isn't used client side so we can just created it in the server process and save passing around the fd/object. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/server/process.py')
-rw-r--r--lib/bb/server/process.py32
1 files changed, 15 insertions, 17 deletions
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index b037e0fb6..8f5abb32b 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -402,27 +402,11 @@ class BitBakeServer(object):
self.bitbake_lock = lock
self.readypipe, self.readypipein = os.pipe()
- # Create server control socket
- if os.path.exists(sockname):
- os.unlink(sockname)
-
# Place the log in the builddirectory alongside the lock file
logfile = os.path.join(os.path.dirname(self.bitbake_lock.name), "bitbake-cookerdaemon.log")
- self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- # AF_UNIX has path length issues so chdir here to workaround
- cwd = os.getcwd()
- try:
- os.chdir(os.path.dirname(sockname))
- self.sock.bind(os.path.basename(sockname))
- finally:
- os.chdir(cwd)
- self.sock.listen(1)
-
- os.set_inheritable(self.sock.fileno(), True)
startdatetime = datetime.datetime.now()
bb.daemonize.createDaemon(self._startServer, logfile)
- self.sock.close()
self.bitbake_lock.close()
os.close(self.readypipein)
@@ -478,7 +462,21 @@ class BitBakeServer(object):
sys.stdout.flush()
try:
- server = ProcessServer(self.bitbake_lock, self.sock, self.sockname, self.configuration.server_timeout, self.configuration.xmlrpcinterface)
+ # Create server control socket
+ if os.path.exists(self.sockname):
+ os.unlink(self.sockname)
+
+ sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ # AF_UNIX has path length issues so chdir here to workaround
+ cwd = os.getcwd()
+ try:
+ os.chdir(os.path.dirname(self.sockname))
+ sock.bind(os.path.basename(self.sockname))
+ finally:
+ os.chdir(cwd)
+ sock.listen(1)
+
+ server = ProcessServer(self.bitbake_lock, sock, self.sockname, self.configuration.server_timeout, self.configuration.xmlrpcinterface)
os.close(self.readypipe)
writer = ConnectionWriter(self.readypipein)
try: