__init__.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:RPiNWR 作者: ke4roh 项目源码 文件源码
def __event_loop(self):
        def dispatch_event(event):
            for listener in self.__event_listeners:
                try:
                    listener(event)
                except Exception as e:
                    self._logger.exception("Event processing")

        def get_delayed_events():
            """
            :return: As many delayed events as are due to be executed, empty array if none.
            """
            events = []
            with self.__delayed_event_lock:
                while len(self.__delayed_events) and heapq.nsmallest(1, self.__delayed_events)[0][0] <= time.time():
                    events.append(heapq.heappop(self.__delayed_events))
            for ev in events:
                ev[1].time = time.time()
                self._logger.debug("Firing for t=%f (%d ms late)" % (ev[0], int((time.time() - ev[0]) * 1000)))
            return list([x[1] for x in events])

        # Here begins the body of __event_loop
        while not self.stop or not self.__event_queue.empty():
            try:
                for e in get_delayed_events():
                    dispatch_event(e)
                dispatch_event(self.__event_queue.get(block=True, timeout=0.05))
                self.__event_queue.task_done()
            except queue.Empty:
                pass
        self.__event_queue = None
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号