| # Copyright 2012 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| from .AsyncScheduler import AsyncScheduler |
| |
| class TaskScheduler(AsyncScheduler): |
| |
| """ |
| A simple way to handle scheduling of AbstractPollTask instances. Simply |
| pass a task iterator into the constructor and call start(). Use the |
| poll, wait, or addExitListener methods to be notified when all of the |
| tasks have completed. |
| """ |
| |
| def __init__(self, task_iter, **kwargs): |
| AsyncScheduler.__init__(self, **kwargs) |
| self._task_iter = task_iter |
| |
| def _next_task(self): |
| return next(self._task_iter) |