summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/TaskScheduler.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-06-22 18:47:26 +0000
committerZac Medico <zmedico@gentoo.org>2009-06-22 18:47:26 +0000
commitbf9282b6782ad433b2ca905a5131bd0c424a2d94 (patch)
tree07e4481a6a7bef331e8f463b3a7ce1b40fe5e4d0 /pym/_emerge/TaskScheduler.py
parent69500d28402817fb70c104501b5c8f4f54650f4a (diff)
downloadportage-bf9282b6782ad433b2ca905a5131bd0c424a2d94.tar.gz
portage-bf9282b6782ad433b2ca905a5131bd0c424a2d94.tar.bz2
portage-bf9282b6782ad433b2ca905a5131bd0c424a2d94.zip
Bug #275047 - Split _emerge/__init__.py into smaller pieces (part 3).
Thanks to Sebastian Mingramm (few) <s.mingramm@gmx.de> for this patch. svn path=/main/trunk/; revision=13668
Diffstat (limited to 'pym/_emerge/TaskScheduler.py')
-rw-r--r--pym/_emerge/TaskScheduler.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/pym/_emerge/TaskScheduler.py b/pym/_emerge/TaskScheduler.py
new file mode 100644
index 000000000..564f130aa
--- /dev/null
+++ b/pym/_emerge/TaskScheduler.py
@@ -0,0 +1,21 @@
+from _emerge.QueueScheduler import QueueScheduler
+from _emerge.SequentialTaskQueue import SequentialTaskQueue
+
+class TaskScheduler(object):
+
+ """
+ A simple way to handle scheduling of AsynchrousTask instances. Simply
+ add tasks and call run(). The run() method returns when no tasks remain.
+ """
+
+ def __init__(self, max_jobs=None, max_load=None):
+ self._queue = SequentialTaskQueue(max_jobs=max_jobs)
+ self._scheduler = QueueScheduler(
+ max_jobs=max_jobs, max_load=max_load)
+ self.sched_iface = self._scheduler.sched_iface
+ self.run = self._scheduler.run
+ self._scheduler.add(self._queue)
+
+ def add(self, task):
+ self._queue.add(task)
+