summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-07 14:38:54 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-07 14:59:38 +0100
commit412bfab8721ea317898a1974f6a7a0d0bea763df (patch)
tree12645d9ab6448fb3b23a21aa057048daaf087a5c
parent9a36531ed2b2881a65e5d39ee4b68d2bb392ed78 (diff)
downloadbitbake-contrib-412bfab8721ea317898a1974f6a7a0d0bea763df.tar.gz
server/process: Fix waitEvent() calls with 0 timeout
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@linuxfoundation.org>
-rw-r--r--lib/bb/server/process.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py
index c3c1450a5..9ca2b6958 100644
--- a/lib/bb/server/process.py
+++ b/lib/bb/server/process.py
@@ -253,6 +253,8 @@ class ProcessEventQueue(multiprocessing.queues.Queue):
try:
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