+ def next_event(self):
+ if len(self.events) > 0:
+ ret = self.events[0]
+ del self.events[0]
+ return ret
+ return None
+
+ def wait_for_events(self, timeout = None):
+ if self.events: return True
+ (r, _, _) = select([self.rfh], [], [], timeout)
+ if not r: return False
+ event_added = False
+ while True:
+ self.get_response(async = True)
+ (r, _, _) = select([self.rfh], [], [], 0)
+ if not r: return event_added