util/ProcessLogger.py
changeset 1507 d7f474d10210
parent 1506 b9b8978dbc9d
child 1516 9db0b436fbb3
equal deleted inserted replaced
1506:b9b8978dbc9d 1507:d7f474d10210
    47         self.fd = fd
    47         self.fd = fd
    48 
    48 
    49     def run(self):
    49     def run(self):
    50         outchunk = None
    50         outchunk = None
    51         self.retval = None
    51         self.retval = None
    52         while outchunk != '' and not self.killed :
       
    53             outchunk = self.fd.readline()
       
    54             if self.callback : self.callback(outchunk)
       
    55         while self.retval is None and not self.killed :
    52         while self.retval is None and not self.killed :
    56             self.retval = self.Proc.poll()
    53             if self.endcallback:
       
    54                 self.retval = self.Proc.poll()
       
    55             else:
       
    56                 self.retval = self.Proc.returncode
       
    57                 
    57             outchunk = self.fd.readline()
    58             outchunk = self.fd.readline()
    58             if self.callback : self.callback(outchunk)
    59             if self.callback : self.callback(outchunk)
    59         while outchunk != '' and not self.killed :
    60         while outchunk != '' and not self.killed :
    60             outchunk = self.fd.readline()
    61             outchunk = self.fd.readline()
    61             if self.callback : self.callback(outchunk)
    62             if self.callback : self.callback(outchunk)
   203                self.kill()
   204                self.kill()
   204 
   205 
   205 
   206 
   206     def spin(self):
   207     def spin(self):
   207         self.finishsem.acquire()
   208         self.finishsem.acquire()
       
   209         self.outt.join()
       
   210         self.errt.join()
   208         return [self.exitcode, "".join(self.outdata), "".join(self.errdata)]
   211         return [self.exitcode, "".join(self.outdata), "".join(self.errdata)]
   209 
   212