From 9245c3b87fd56cd157de8f3e8ba1032a3a6be286 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 7 Jul 2017 14:38:54 +0100 Subject: bitbake: 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. (Bitbake rev: 412bfab8721ea317898a1974f6a7a0d0bea763df) Signed-off-by: Richard Purdie --- bitbake/lib/bb/server/process.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'bitbake/lib/bb/server') diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py index c3c1450a50..9ca2b6958d 100644 --- a/bitbake/lib/bb/server/process.py +++ b/bitbake/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 -- cgit v1.2.3-54-g00ecf