Make sure we always request that the task master shutdown cleanly.
authorDavid Anderson <dvander@alliedmods.net>
Tue Nov 12 02:33:12 2013 -0800 (2013-11-12)
changeset 1745a661ca94c11
parent 173 34ed6779b20a
child 175 28bbe68ad4a2
child 185 559cd75c3c35
Make sure we always request that the task master shutdown cleanly.
ambuild2/task.py
     1.1 --- a/ambuild2/task.py	Tue Nov 12 02:22:57 2013 -0800
     1.2 +++ b/ambuild2/task.py	Tue Nov 12 02:33:12 2013 -0800
     1.3 @@ -253,10 +253,10 @@
     1.4  
     1.5    def receiveStop(self, channel, message):
     1.6      if not message['ok']:
     1.7 -      self.buildFailed()
     1.8 +      self.terminateBuild()
     1.9      self.close_idle()
    1.10  
    1.11 -  def buildFailed(self):
    1.12 +  def terminateBuild(self):
    1.13      if self.build_failed:
    1.14        return
    1.15  
    1.16 @@ -277,7 +277,7 @@
    1.17          'status': 'failed',
    1.18        })
    1.19        self.procman.close(child)
    1.20 -      self.buildFailed()
    1.21 +      self.terminateBuild()
    1.22        return
    1.23  
    1.24      task_id = message['task_id']
    1.25 @@ -356,7 +356,7 @@
    1.26        'status': 'crashed',
    1.27        'task_id': task.id,
    1.28      })
    1.29 -    self.buildFailed()
    1.30 +    self.terminateBuild()
    1.31  
    1.32    def onWorkerDied(self, child, error):
    1.33      if error != Error.NormalShutdown:
    1.34 @@ -462,12 +462,13 @@
    1.35        self.terminateBuild()
    1.36  
    1.37    def terminateBuild(self):
    1.38 -    if not self.build_failed:
    1.39 -      self.build_failed = True
    1.40 -      self.taskMaster.send({
    1.41 -        'id': 'stop',
    1.42 -        'ok': False
    1.43 -      })
    1.44 +    if self.build_failed:
    1.45 +      return
    1.46 +    self.build_failed = True
    1.47 +    self.taskMaster.send({
    1.48 +      'id': 'stop',
    1.49 +      'ok': False
    1.50 +    })
    1.51  
    1.52    def receiveSpawned(self, message):
    1.53      util.con_out(
    1.54 @@ -490,7 +491,10 @@
    1.55      elif message['status'] == 'failed':
    1.56        self.terminateBuild()
    1.57      else:
    1.58 -      self.cx.procman.close(child)
    1.59 +      self.taskMaster.send({
    1.60 +        'id': 'stop',
    1.61 +        'ok': True
    1.62 +      })
    1.63  
    1.64    def run(self):
    1.65      self.cx.messagePump.pump()