diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-28 15:37:29 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-30 08:43:36 +0100 |
| commit | dd3a59d3546b900dae92ab3b3eccca5a215ddf61 (patch) | |
| tree | 39e3b9ace4cac5957af570c2c256e8eef8158e07 | |
| parent | 76b6cdf414ac813783646d0456865fd20d89195f (diff) | |
| download | poky-dd3a59d3546b900dae92ab3b3eccca5a215ddf61.tar.gz | |
bitbake: 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.
(Bitbake rev: 77fd3a3a29a569e212374b27aea742ddbaafcdd5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/server/process.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py index 3d9077fd07..fb96804e68 100644 --- a/bitbake/lib/bb/server/process.py +++ b/bitbake/lib/bb/server/process.py | |||
| @@ -336,12 +336,16 @@ class ServerCommunicator(): | |||
| 336 | return | 336 | return |
| 337 | 337 | ||
| 338 | class BitBakeProcessServerConnection(object): | 338 | class BitBakeProcessServerConnection(object): |
| 339 | def __init__(self, ui_channel, recv, eq): | 339 | def __init__(self, ui_channel, recv, eq, sock): |
| 340 | self.connection = ServerCommunicator(ui_channel, recv) | 340 | self.connection = ServerCommunicator(ui_channel, recv) |
| 341 | self.events = eq | 341 | self.events = eq |
| 342 | # Save sock so it doesn't get gc'd for the life of our connection | ||
| 343 | self.socket_connection = sock | ||
| 342 | 344 | ||
| 343 | def terminate(self): | 345 | def terminate(self): |
| 344 | self.socket_connection.close() | 346 | self.socket_connection.close() |
| 347 | self.connection.connection.close() | ||
| 348 | self.connection.recv.close() | ||
| 345 | return | 349 | return |
| 346 | 350 | ||
| 347 | class BitBakeServer(object): | 351 | class BitBakeServer(object): |
| @@ -413,12 +417,10 @@ def connectProcessServer(sockname, featureset): | |||
| 413 | 417 | ||
| 414 | sendfds(sock, [writefd, readfd1, writefd2]) | 418 | sendfds(sock, [writefd, readfd1, writefd2]) |
| 415 | 419 | ||
| 416 | server_connection = BitBakeProcessServerConnection(command_chan, command_chan_recv, eq) | 420 | server_connection = BitBakeProcessServerConnection(command_chan, command_chan_recv, eq, sock) |
| 417 | 421 | ||
| 418 | server_connection.connection.updateFeatureSet(featureset) | 422 | server_connection.connection.updateFeatureSet(featureset) |
| 419 | 423 | ||
| 420 | # Save sock so it doesn't get gc'd for the life of our connection | ||
| 421 | server_connection.socket_connection = sock | ||
| 422 | except: | 424 | except: |
| 423 | sock.close() | 425 | sock.close() |
| 424 | raise | 426 | raise |
