diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index 3527ad03c1..641cc70619 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py @@ -137,13 +137,13 @@ class CommandsSync: """ Trigger cooker 'shutdown' mode """ - command.cooker.shutdown() + command.cooker.shutdown(False) - def stateStop(self, command, params): + def stateForceShutdown(self, command, params): """ Stop the cooker """ - command.cooker.stop() + command.cooker.shutdown(True) def getVariable(self, command, params): """ diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 7034f1d718..4b2e5bf917 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -61,7 +61,7 @@ class CollectionError(bb.BBHandledException): """ class state: - initial, parsing, running, shutdown, stop = range(5) + initial, parsing, running, shutdown, forceshutdown, stopped = range(6) class SkippedPackage: @@ -1044,7 +1044,7 @@ class BBCooker: def buildFileIdle(server, rq, abort): - if abort or self.state == state.stop: + if abort or self.state == state.forceshutdown: rq.finish_runqueue(True) elif self.state == state.shutdown: rq.finish_runqueue(False) @@ -1081,7 +1081,7 @@ class BBCooker: targets = self.checkPackages(targets) def buildTargetsIdle(server, rq, abort): - if abort or self.state == state.stop: + if abort or self.state == state.forceshutdown: rq.finish_runqueue(True) elif self.state == state.shutdown: rq.finish_runqueue(False) @@ -1170,7 +1170,7 @@ class BBCooker: if self.state == state.running: return - if self.state in (state.shutdown, state.stop): + if self.state in (state.shutdown, state.forceshutdown): self.parser.shutdown(clean=False, force = True) sys.exit(1) @@ -1240,11 +1240,11 @@ class BBCooker: prserv.serv.auto_shutdown(self.data) bb.event.fire(CookerExit(), self.event_data) - def shutdown(self): - self.state = state.shutdown - - def stop(self): - self.state = state.stop + def shutdown(self, force = False): + if force: + self.state = state.forceshutdown + else: + self.state = state.shutdown def initialize(self): self.initConfigurationData() diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py index c0af052ebd..e45e0c2f6d 100644 --- a/bitbake/lib/bb/server/process.py +++ b/bitbake/lib/bb/server/process.py @@ -113,7 +113,7 @@ class ProcessServer(Process, BaseImplServer): self.event_queue.close() bb.event.unregister_UIHhandler(self.event_handle.value) self.command_channel.close() - self.cooker.stop() + self.cooker.shutdown(True) self.idle_commands(.1) def idle_commands(self, delay, fds = []): diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py index d0ac6bd677..ef74e563f9 100644 --- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py +++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py @@ -440,12 +440,12 @@ class HobHandler(gobject.GObject): self.building = False def cancel_parse(self): - self.runCommand(["stateStop"]) + self.runCommand(["stateForceShutdown"]) def cancel_build(self, force=False): if force: # Force the cooker to stop as quickly as possible - self.runCommand(["stateStop"]) + self.runCommand(["stateForceShutdown"]) else: # Wait for tasks to complete before shutting down, this helps # leave the workdir in a usable state diff --git a/bitbake/lib/bb/ui/depexp.py b/bitbake/lib/bb/ui/depexp.py index cbda6d5afe..0b160e2f4e 100644 --- a/bitbake/lib/bb/ui/depexp.py +++ b/bitbake/lib/bb/ui/depexp.py @@ -314,7 +314,7 @@ def main(server, eventHandler, params): break if shutdown == 1: print("\nSecond Keyboard Interrupt, stopping...\n") - _, error = server.runCommand(["stateStop"]) + _, error = server.runCommand(["stateForceShutdown"]) if error: print('Unable to cleanly stop: %s' % error) if shutdown == 0: diff --git a/bitbake/lib/bb/ui/goggle.py b/bitbake/lib/bb/ui/goggle.py index 16faba4c21..f4ee7b41ae 100644 --- a/bitbake/lib/bb/ui/goggle.py +++ b/bitbake/lib/bb/ui/goggle.py @@ -117,5 +117,5 @@ def main (server, eventHandler, params): except KeyboardInterrupt: pass finally: - server.runCommand(["stateStop"]) + server.runCommand(["stateForceShutdown"]) diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 45200460b1..f706b9759d 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -499,7 +499,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): main.shutdown = 2 if not params.observe_only and main.shutdown == 1: print("\nSecond Keyboard Interrupt, stopping...\n") - _, error = server.runCommand(["stateStop"]) + _, error = server.runCommand(["stateForceShutdown"]) if error: logger.error("Unable to cleanly stop: %s" % error) if not params.observe_only and main.shutdown == 0: diff --git a/bitbake/lib/bb/ui/ncurses.py b/bitbake/lib/bb/ui/ncurses.py index c45ffd63ac..b6c20ec388 100644 --- a/bitbake/lib/bb/ui/ncurses.py +++ b/bitbake/lib/bb/ui/ncurses.py @@ -350,7 +350,7 @@ class NCursesUI: exitflag = True if shutdown == 1: mw.appendText("Second Keyboard Interrupt, stopping...\n") - _, error = server.runCommand(["stateStop"]) + _, error = server.runCommand(["stateForceShutdown"]) if error: print("Unable to cleanly stop: %s" % error) if shutdown == 0: