taskmanager.py 文件源码

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

项目:py-ipv8 作者: qstokkink 项目源码 文件源码
def register_task(self, name, task, delay=None, value=None, interval=None):
        """
        Register a task so it can be canceled at shutdown time or by name.
        """
        assert not self.is_pending_task_active(name), name
        assert isinstance(task, (Deferred, DelayedCall, LoopingCall)), (task, type(task) == type(Deferred))

        if delay is not None:
            if isinstance(task, Deferred):
                if value is None:
                    raise ValueError("Expecting value to fire the Deferred with")
                dc = self._reactor.callLater(delay, task.callback, value)
            elif isinstance(task, LoopingCall):
                if interval is None:
                    raise ValueError("Expecting interval for delayed LoopingCall")
                dc = self._reactor.callLater(delay, task.start, interval)
            else:
                raise ValueError("Expecting Deferred or LoopingCall if task is delayed")

            task = (dc, task)

        self._maybe_clean_task_list()
        with self._task_lock:
            self._pending_tasks[name] = task
        return task
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号