[bitbake-devel] [PATCH] server/process: Fix waitEvent() calls with 0 timeout

Richard Purdie richard.purdie at linuxfoundation.org
Fri Jul 7 13:59:49 UTC 2017

You might think Queue.Queue.get(True, 0) would return an event immediately
if present and otherwise return. It doesn't, it immediately "times out"
and returns with nothing from the queue.

The behaviour we want is not to wait but return anything present which is
what .get(False) does so map to this.

This fixes some odd behaviour observed in some of the tinfoil selftests.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
 lib/bb/server/process.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index c3c1450..9ca2b69 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -253,6 +253,8 @@ class ProcessEventQueue(multiprocessing.queues.Queue):
             if not self.server.is_alive():
                 return self.getEvent()
+            if timeout == 0:
+                return self.get(False)
             return self.get(True, timeout)
         except Empty:
             return None

More information about the bitbake-devel mailing list