summaryrefslogtreecommitdiffstats
path: root/lib/bb/server/process.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-08 13:01:34 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-08 13:01:34 +0100
commit93059e36200b61f87f61578d9774172212446644 (patch)
treef94ffd2af6843c7b0f9d5b8f1fbb5d2d2859ada9 /lib/bb/server/process.py
parentb420e865f6dfb04b58c1dbc5f1b5332b137f49ff (diff)
downloadbitbake-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.py20
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
+
+
+