diff options
Diffstat (limited to 'bitbake-dev/lib/bb/ui/uievent.py')
| -rw-r--r-- | bitbake-dev/lib/bb/ui/uievent.py | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/bitbake-dev/lib/bb/ui/uievent.py b/bitbake-dev/lib/bb/ui/uievent.py index 23fdd0f961..36302f4da7 100644 --- a/bitbake-dev/lib/bb/ui/uievent.py +++ b/bitbake-dev/lib/bb/ui/uievent.py | |||
| @@ -24,7 +24,7 @@ server and queue them for the UI to process. This process must be used to avoid | |||
| 24 | client/server deadlocks. | 24 | client/server deadlocks. |
| 25 | """ | 25 | """ |
| 26 | 26 | ||
| 27 | import socket, threading | 27 | import socket, threading, pickle |
| 28 | from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler | 28 | from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler |
| 29 | 29 | ||
| 30 | class BBUIEventQueue: | 30 | class BBUIEventQueue: |
| @@ -37,8 +37,8 @@ class BBUIEventQueue: | |||
| 37 | self.BBServer = BBServer | 37 | self.BBServer = BBServer |
| 38 | 38 | ||
| 39 | self.t = threading.Thread() | 39 | self.t = threading.Thread() |
| 40 | self.t.setDaemon(True) | 40 | self.t.setDaemon(True) |
| 41 | self.t.run = self.startCallbackHandler | 41 | self.t.run = self.startCallbackHandler |
| 42 | self.t.start() | 42 | self.t.start() |
| 43 | 43 | ||
| 44 | def getEvent(self): | 44 | def getEvent(self): |
| @@ -55,7 +55,6 @@ class BBUIEventQueue: | |||
| 55 | self.eventQueueNotify.clear() | 55 | self.eventQueueNotify.clear() |
| 56 | 56 | ||
| 57 | self.eventQueueLock.release() | 57 | self.eventQueueLock.release() |
| 58 | |||
| 59 | return item | 58 | return item |
| 60 | 59 | ||
| 61 | def waitEvent(self, delay): | 60 | def waitEvent(self, delay): |
| @@ -63,16 +62,15 @@ class BBUIEventQueue: | |||
| 63 | return self.getEvent() | 62 | return self.getEvent() |
| 64 | 63 | ||
| 65 | def queue_event(self, event): | 64 | def queue_event(self, event): |
| 66 | |||
| 67 | self.eventQueueLock.acquire() | 65 | self.eventQueueLock.acquire() |
| 68 | self.eventQueue.append(event) | 66 | self.eventQueue.append(pickle.loads(event)) |
| 69 | self.eventQueueNotify.set() | 67 | self.eventQueueNotify.set() |
| 70 | self.eventQueueLock.release() | 68 | self.eventQueueLock.release() |
| 71 | 69 | ||
| 72 | def startCallbackHandler(self): | 70 | def startCallbackHandler(self): |
| 73 | 71 | ||
| 74 | server = UIXMLRPCServer() | 72 | server = UIXMLRPCServer() |
| 75 | self.host, self.port = server.socket.getsockname() | 73 | self.host, self.port = server.socket.getsockname() |
| 76 | 74 | ||
| 77 | server.register_function( self.system_quit, "event.quit" ) | 75 | server.register_function( self.system_quit, "event.quit" ) |
| 78 | server.register_function( self.queue_event, "event.send" ) | 76 | server.register_function( self.queue_event, "event.send" ) |
| @@ -85,7 +83,7 @@ class BBUIEventQueue: | |||
| 85 | server.handle_request() | 83 | server.handle_request() |
| 86 | server.server_close() | 84 | server.server_close() |
| 87 | 85 | ||
| 88 | def system_quit( self ): | 86 | def system_quit( self ): |
| 89 | """ | 87 | """ |
| 90 | Shut down the callback thread | 88 | Shut down the callback thread |
| 91 | """ | 89 | """ |
| @@ -97,11 +95,11 @@ class BBUIEventQueue: | |||
| 97 | 95 | ||
| 98 | class UIXMLRPCServer (SimpleXMLRPCServer): | 96 | class UIXMLRPCServer (SimpleXMLRPCServer): |
| 99 | 97 | ||
| 100 | def __init__( self, interface = ("localhost", 0) ): | 98 | def __init__( self, interface = ("localhost", 0) ): |
| 101 | self.quit = False | 99 | self.quit = False |
| 102 | SimpleXMLRPCServer.__init__( self, | 100 | SimpleXMLRPCServer.__init__( self, |
| 103 | interface, | 101 | interface, |
| 104 | requestHandler=SimpleXMLRPCRequestHandler, | 102 | requestHandler=SimpleXMLRPCRequestHandler, |
| 105 | logRequests=False, allow_none=True) | 103 | logRequests=False, allow_none=True) |
| 106 | 104 | ||
| 107 | def get_request(self): | 105 | def get_request(self): |
| @@ -123,5 +121,5 @@ class UIXMLRPCServer (SimpleXMLRPCServer): | |||
| 123 | if request is None: | 121 | if request is None: |
| 124 | return | 122 | return |
| 125 | SimpleXMLRPCServer.process_request(self, request, client_address) | 123 | SimpleXMLRPCServer.process_request(self, request, client_address) |
| 126 | 124 | ||
| 127 | 125 | ||
