"""
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):
"""
"""
class state:
- initial, parsing, running, shutdown, stop = range(5)
+ initial, parsing, running, shutdown, forceshutdown, stopped = range(6)
class SkippedPackage:
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)
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)
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)
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()
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 = []):
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
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:
except KeyboardInterrupt:
pass
finally:
- server.runCommand(["stateStop"])
+ server.runCommand(["stateForceShutdown"])
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:
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: