equal
deleted
inserted
replaced
168 def log_the_end(self,ecode,pid): |
168 def log_the_end(self,ecode,pid): |
169 self.logger.write(self.Command_str + "\n") |
169 self.logger.write(self.Command_str + "\n") |
170 self.logger.write_warning(_("exited with status %s (pid %s)\n")%(str(ecode),str(pid))) |
170 self.logger.write_warning(_("exited with status %s (pid %s)\n")%(str(ecode),str(pid))) |
171 |
171 |
172 def finish(self, pid,ecode): |
172 def finish(self, pid,ecode): |
|
173 # avoid running function before start is finished |
173 self.startsem.acquire() |
174 self.startsem.acquire() |
174 if self.timeout: |
175 if self.timeout: |
175 self.timeout.cancel() |
176 self.timeout.cancel() |
176 self.exitcode = ecode |
177 self.exitcode = ecode |
177 if self.exitcode != 0: |
178 if self.exitcode != 0: |
180 self.finish_callback(self,ecode,pid) |
181 self.finish_callback(self,ecode,pid) |
181 self.errt.join() |
182 self.errt.join() |
182 self.finishsem.release() |
183 self.finishsem.release() |
183 |
184 |
184 def kill(self,gently=True): |
185 def kill(self,gently=True): |
185 self.startsem.acquire() |
186 # avoid running kill before start is finished |
|
187 self.startsem.acquire() |
|
188 self.startsem.release() |
|
189 |
186 self.outt.killed = True |
190 self.outt.killed = True |
187 self.errt.killed = True |
191 self.errt.killed = True |
188 if wx.Platform == '__WXMSW__': |
192 if wx.Platform == '__WXMSW__': |
189 PROCESS_TERMINATE = 1 |
193 PROCESS_TERMINATE = 1 |
190 handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, self.Proc.pid) |
194 handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, self.Proc.pid) |