Merge pull request #285 from starcraftman/thrd_join

Join a thread instead of sleeping
This commit is contained in:
Jeremy Pallats/starcraft.man 2015-09-21 15:52:03 -04:00
commit eb29cc9b47

View file

@ -1182,6 +1182,17 @@ class Command(object):
self.proc = subprocess.Popen(self.cmd, cwd=self.cmd_dir, stdout=tfile,
stderr=subprocess.STDOUT, shell=True,
preexec_fn=os.setsid)
thrd = thr.Thread(target=(lambda proc: proc.wait()), args=(self.proc,))
thrd.start()
thread_not_started = True
while thread_not_started:
try:
thrd.join(0.1)
thread_not_started = False
except RuntimeError:
pass
while self.alive:
if G_STOP.is_set():
raise KeyboardInterrupt
@ -1196,7 +1207,7 @@ class Command(object):
if time_diff > self.timeout:
raise CmdTimedOut(['Timeout!'])
time.sleep(0.33)
thrd.join(0.5)
tfile.seek(0)
result = [line.decode('utf-8', 'replace').rstrip() for line in tfile]