diff options
author | Joshua Lock <josh@linux.intel.com> | 2011-05-27 13:04:44 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-27 23:03:40 +0100 |
commit | 0ac48f913ac18c41a309918f1e32ec72311d5399 (patch) | |
tree | debd4a66e42bc16a09bdd28f2a808aa5c5de8361 /lib/bb/ui/uievent.py | |
parent | 10f3ca52dc274cd8b240987cfd7cd003aeda7ab1 (diff) | |
download | bitbake-0ac48f913ac18c41a309918f1e32ec72311d5399.tar.gz |
uievent: fix queueing of events for xmlrpc before UI has loaded
The change to Queue up events before the UI is spawned broke the xmlrpc
server because the uievent implementation of BBUIEventQueue expects pickled
strings for its queue_event() method.
This is because the RPC exposed event.send() method must accept pickled
strings, but for xmlrpc event.send() is just mapped to queue_event(). Work
around this by adding a send_event method which unpickles strings and hands
them off to queue_event() which can then be used for the remapping.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Diffstat (limited to 'lib/bb/ui/uievent.py')
-rw-r--r-- | lib/bb/ui/uievent.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/bb/ui/uievent.py b/lib/bb/ui/uievent.py index b404805d8..2fef4e465 100644 --- a/lib/bb/ui/uievent.py +++ b/lib/bb/ui/uievent.py @@ -63,17 +63,20 @@ class BBUIEventQueue: def queue_event(self, event): self.eventQueueLock.acquire() - self.eventQueue.append(pickle.loads(event)) + self.eventQueue.append(event) self.eventQueueNotify.set() self.eventQueueLock.release() + def send_event(self, event): + self.queue_event(pickle.loads(event)) + def startCallbackHandler(self): server = UIXMLRPCServer() self.host, self.port = server.socket.getsockname() server.register_function( self.system_quit, "event.quit" ) - server.register_function( self.queue_event, "event.send" ) + server.register_function( self.send_event, "event.send" ) server.socket.settimeout(1) self.EventHandle = self.BBServer.registerEventHandler(self.host, self.port) |