diff options
Diffstat (limited to 'lib/bb/ui/uievent.py')
-rw-r--r-- | lib/bb/ui/uievent.py | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/lib/bb/ui/uievent.py b/lib/bb/ui/uievent.py index d595f172a..c2f830d53 100644 --- a/lib/bb/ui/uievent.py +++ b/lib/bb/ui/uievent.py @@ -65,35 +65,27 @@ class BBUIEventQueue: self.server = server self.t = threading.Thread() - self.t.setDaemon(True) + self.t.daemon = True self.t.run = self.startCallbackHandler self.t.start() def getEvent(self): - - self.eventQueueLock.acquire() - - if not self.eventQueue: - self.eventQueueLock.release() - return None - - item = self.eventQueue.pop(0) - - if not self.eventQueue: - self.eventQueueNotify.clear() - - self.eventQueueLock.release() - return item + with bb.utils.lock_timeout(self.eventQueueLock): + if not self.eventQueue: + return None + item = self.eventQueue.pop(0) + if not self.eventQueue: + self.eventQueueNotify.clear() + return item def waitEvent(self, delay): self.eventQueueNotify.wait(delay) return self.getEvent() def queue_event(self, event): - self.eventQueueLock.acquire() - self.eventQueue.append(event) - self.eventQueueNotify.set() - self.eventQueueLock.release() + with bb.utils.lock_timeout(self.eventQueueLock): + self.eventQueue.append(event) + self.eventQueueNotify.set() def send_event(self, event): self.queue_event(pickle.loads(event)) |