Merge pull request #285 from starcraftman/thrd_join
Join a thread instead of sleeping
This commit is contained in:
commit
eb29cc9b47
1 changed files with 12 additions and 1 deletions
13
plug.vim
13
plug.vim
|
@ -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]
|
||||
|
|
Loading…
Reference in a new issue