summaryrefslogtreecommitdiffstats
path: root/lib/bb/server/process.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-28 15:37:29 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-28 15:54:26 +0100
commit77fd3a3a29a569e212374b27aea742ddbaafcdd5 (patch)
tree22826db03269e340ecbeac8f8f1415f6ec19fa3e /lib/bb/server/process.py
parent930d077637928213e13a07c78fee3bf7a8c37ebf (diff)
downloadbitbake-contrib-77fd3a3a29a569e212374b27aea742ddbaafcdd5.tar.gz
process: Move socket keep alive into BitBakeProcessServerConnection
This cleans up the socket keep alive into better class structured code and adds cleanup of the open file descriptors upon shutdown. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/server/process.py')
-rw-r--r--lib/bb/server/process.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index 3d9077fd0..fb96804e6 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -336,12 +336,16 @@ class ServerCommunicator():
return
class BitBakeProcessServerConnection(object):
- def __init__(self, ui_channel, recv, eq):
+ def __init__(self, ui_channel, recv, eq, sock):
self.connection = ServerCommunicator(ui_channel, recv)
self.events = eq
+ # Save sock so it doesn't get gc'd for the life of our connection
+ self.socket_connection = sock
def terminate(self):
self.socket_connection.close()
+ self.connection.connection.close()
+ self.connection.recv.close()
return
class BitBakeServer(object):
@@ -413,12 +417,10 @@ def connectProcessServer(sockname, featureset):
sendfds(sock, [writefd, readfd1, writefd2])
- server_connection = BitBakeProcessServerConnection(command_chan, command_chan_recv, eq)
+ server_connection = BitBakeProcessServerConnection(command_chan, command_chan_recv, eq, sock)
server_connection.connection.updateFeatureSet(featureset)
- # Save sock so it doesn't get gc'd for the life of our connection
- server_connection.socket_connection = sock
except:
sock.close()
raise