diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index caa3e4d457..012b35faf6 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py @@ -472,3 +472,11 @@ class CommandsAsync: command.finishAsyncCommand() resetCooker.needcache = False + def clientComplete(self, command, params): + """ + Do the right thing when the controlling client exits + """ + command.cooker.clientComplete() + command.finishAsyncCommand() + clientComplete.needcache = False + diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 5e5708ee2b..2614c4485a 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -1725,6 +1725,13 @@ class BBCooker: def reset(self): self.initConfigurationData() + def clientComplete(self): + """Called when the client is done using the server""" + if self.configuration.server_only: + self.finishcommand() + else: + self.shutdown(True) + def lockBitbake(self): if not hasattr(self, 'lock'): self.lock = None diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index 320bb5906c..c6e958b43c 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py @@ -146,6 +146,7 @@ class CookerConfiguration(object): self.tracking = False self.interface = [] self.writeeventlog = False + self.server_only = False self.env = {}