1 |
commit: 56099907f2fb5bbf8319baa961f97c9356995c09 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Aug 3 05:10:47 2011 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Aug 3 05:10:47 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=56099907 |
7 |
|
8 |
Scheduler: fix parallel-fetch order with --jobs=1 |
9 |
|
10 |
This avoids a case where the first prefetcher is discarded, causing |
11 |
the second prefetcher to occupy the fetch queue before the first |
12 |
fetcher has an opportunity to execute. |
13 |
|
14 |
--- |
15 |
pym/_emerge/Scheduler.py | 7 +++++++ |
16 |
1 files changed, 7 insertions(+), 0 deletions(-) |
17 |
|
18 |
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py |
19 |
index d13e622..6412d82 100644 |
20 |
--- a/pym/_emerge/Scheduler.py |
21 |
+++ b/pym/_emerge/Scheduler.py |
22 |
@@ -752,6 +752,13 @@ class Scheduler(PollScheduler): |
23 |
self._task_queues.fetch.add(prefetcher) |
24 |
prefetchers[pkg] = prefetcher |
25 |
|
26 |
+ # Start the first prefetcher immediately so that self._task() |
27 |
+ # won't discard it. This avoids a case where the first |
28 |
+ # prefetcher is discarded, causing the second prefetcher to |
29 |
+ # occupy the fetch queue before the first fetcher has an |
30 |
+ # opportunity to execute. |
31 |
+ self._task_queues.fetch.schedule() |
32 |
+ |
33 |
def _create_prefetcher(self, pkg): |
34 |
""" |
35 |
@return: a prefetcher, or None if not applicable |