diff options
Diffstat (limited to 'lib/bb/server')
-rw-r--r-- | lib/bb/server/process.py | 12 | ||||
-rw-r--r-- | lib/bb/server/xmlrpc.py | 6 |
2 files changed, 13 insertions, 5 deletions
diff --git a/lib/bb/server/process.py b/lib/bb/server/process.py index 99a6bf55c..e2cec49b7 100644 --- a/lib/bb/server/process.py +++ b/lib/bb/server/process.py @@ -37,8 +37,9 @@ from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer logger = logging.getLogger('BitBake') class ServerCommunicator(): - def __init__(self, connection): + def __init__(self, connection, event_handle): self.connection = connection + self.event_handle = event_handle def runCommand(self, command): # @todo try/except @@ -54,6 +55,8 @@ class ServerCommunicator(): except KeyboardInterrupt: pass + def getEventHandle(self): + return self.event_handle.value class EventAdapter(): """ @@ -84,11 +87,12 @@ class ProcessServer(Process, BaseImplServer): self.keep_running = Event() self.keep_running.set() + self.event_handle = multiprocessing.Value("i") def run(self): for event in bb.event.ui_queue: self.event_queue.put(event) - self.event_handle = bb.event.register_UIHhandler(self) + self.event_handle.value = bb.event.register_UIHhandler(self) bb.cooker.server_main(self.cooker, self.main) def main(self): @@ -106,7 +110,7 @@ class ProcessServer(Process, BaseImplServer): logger.exception('Running command %s', command) self.event_queue.close() - bb.event.unregister_UIHhandler(self.event_handle) + bb.event.unregister_UIHhandler(self.event_handle.value) self.command_channel.close() self.cooker.stop() self.idle_commands(.1) @@ -147,7 +151,7 @@ class BitBakeProcessServerConnection(BitBakeBaseServerConnection): self.procserver = serverImpl self.ui_channel = ui_channel self.event_queue = event_queue - self.connection = ServerCommunicator(self.ui_channel) + self.connection = ServerCommunicator(self.ui_channel, self.procserver.event_handle) self.events = self.event_queue def terminate(self): diff --git a/lib/bb/server/xmlrpc.py b/lib/bb/server/xmlrpc.py index d290550e9..4dee5d9fe 100644 --- a/lib/bb/server/xmlrpc.py +++ b/lib/bb/server/xmlrpc.py @@ -95,7 +95,8 @@ class BitBakeServerCommands(): """ s, t = _create_server(host, port) - return bb.event.register_UIHhandler(s) + self.event_handle = bb.event.register_UIHhandler(s) + return self.event_handle def unregisterEventHandler(self, handlerNum): """ @@ -109,6 +110,9 @@ class BitBakeServerCommands(): """ return self.cooker.command.runCommand(command, self.server.readonly) + def getEventHandle(self): + return self.event_handle + def terminateServer(self): """ Trigger the server to quit |