util/ProcessLogger.py
changeset 1516 9db0b436fbb3
parent 1507 d7f474d10210
child 1519 f7ac0d11118e
equal deleted inserted replaced
1515:da8bf5aa275f 1516:9db0b436fbb3
   173         self.exitcode = ecode
   173         self.exitcode = ecode
   174         if self.exitcode != 0:
   174         if self.exitcode != 0:
   175             self.log_the_end(ecode,pid)
   175             self.log_the_end(ecode,pid)
   176         if self.finish_callback is not None:
   176         if self.finish_callback is not None:
   177             self.finish_callback(self,ecode,pid)
   177             self.finish_callback(self,ecode,pid)
       
   178         self.errt.join()
   178         self.finishsem.release()
   179         self.finishsem.release()
   179 
   180 
   180     def kill(self,gently=True):
   181     def kill(self,gently=True):
   181         self.outt.killed = True
   182         self.outt.killed = True
   182         self.errt.killed = True
   183         self.errt.killed = True
   197         self.outt.join()
   198         self.outt.join()
   198         self.errt.join()
   199         self.errt.join()
   199 
   200 
   200     def endlog(self):
   201     def endlog(self):
   201         if self.endlock.acquire(False):
   202         if self.endlock.acquire(False):
   202             self.finishsem.release()
       
   203             if not self.outt.finished and self.kill_it:
   203             if not self.outt.finished and self.kill_it:
   204                self.kill()
   204                self.kill()
       
   205             self.finishsem.release()
   205 
   206 
   206 
   207 
   207     def spin(self):
   208     def spin(self):
   208         self.finishsem.acquire()
   209         self.finishsem.acquire()
   209         self.outt.join()
       
   210         self.errt.join()
       
   211         return [self.exitcode, "".join(self.outdata), "".join(self.errdata)]
   210         return [self.exitcode, "".join(self.outdata), "".join(self.errdata)]
   212 
   211