diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-08 13:01:34 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-08 13:01:34 +0100 |
commit | 93059e36200b61f87f61578d9774172212446644 (patch) | |
tree | f94ffd2af6843c7b0f9d5b8f1fbb5d2d2859ada9 /lib/bb/server/process.py | |
parent | b420e865f6dfb04b58c1dbc5f1b5332b137f49ff (diff) | |
download | bitbake-93059e36200b61f87f61578d9774172212446644.tar.gz |
bitbake/server/process: Move implementation knowledge of event queue into the server
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/server/process.py')
-rw-r--r-- | lib/bb/server/process.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py index 88f819106..a5239400c 100644 --- a/lib/bb/server/process.py +++ b/lib/bb/server/process.py @@ -30,7 +30,8 @@ import signal import sys import time from bb.cooker import BBCooker -from multiprocessing import Event, Process, util +from Queue import Empty +from multiprocessing import Event, Process, util, Queue, Pipe, queues logger = logging.getLogger('BitBake') @@ -193,3 +194,20 @@ class ProcessServer(Process): # which can result in a bitbake server hang during the parsing process if (2, 6, 0) <= sys.version_info < (2, 6, 3): _bootstrap = bootstrap_2_6_6 + +# Wrap Queue to provide API which isn't server implementation specific +class ProcessEventQueue(multiprocessing.queues.Queue): + def waitEvent(self, timeout): + try: + return self.get(True, timeout) + except Empty: + return None + + def getEvent(self): + try: + return self.get(False) + except Empty: + return None + + + |