terminal.py: avoid 100% cpu while waiting for phonehome pid file

Some of the less common terminal types haven't been tested with the
recent phonehome pid file changes and there may be error cases where
the pid file is never created.

(From OE-Core rev: 6b0cf568e9fbe28fb6e7b17f4ad92348d33e2bf4)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Andre McCurdy
2017-08-25 13:36:30 -07:00
committed by Richard Purdie
parent b5db9f05a1
commit 0063ae9310

View File

@@ -221,6 +221,7 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
# to a file using a "phonehome" wrapper script, then monitor the pid
# until it exits.
import tempfile
import time
pidfile = tempfile.NamedTemporaryFile(delete = False).name
try:
sh_cmd = "oe-gnome-terminal-phonehome " + pidfile + " " + sh_cmd
@@ -232,13 +233,13 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
raise ExecutionError(sh_cmd, pipe.returncode, output)
while os.stat(pidfile).st_size <= 0:
time.sleep(0.01)
continue
with open(pidfile, "r") as f:
pid = int(f.readline())
finally:
os.unlink(pidfile)
import time
while True:
try:
os.kill(pid, 0)