]> code.ossystems Code Review - openembedded-core.git/commitdiff
terminal.py: avoid 100% cpu while waiting for phonehome pid file
authorAndre McCurdy <armccurdy@gmail.com>
Fri, 25 Aug 2017 20:36:30 +0000 (13:36 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 27 Aug 2017 21:29:45 +0000 (22:29 +0100)
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.

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oe/terminal.py

index 3c6220dfce8cf645f0b1b936ff16c8a76945cead..714772f741d29bb37aa2b98444456a00c72f6830 100644 (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)