From 9aa06b3116c095a512be1d1f5da84ffaedf845dc Mon Sep 17 00:00:00 2001 From: Andre McCurdy Date: Fri, 25 Aug 2017 13:36:30 -0700 Subject: 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 Signed-off-by: Richard Purdie Signed-off-by: Armin Kuster --- meta/lib/oe/terminal.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py index 3c6220dfce..714772f741 100644 --- a/meta/lib/oe/terminal.py +++ b/meta/lib/oe/terminal.py @@ -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) -- cgit 1.2.3-korg