Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r10905 - main/trunk/pym/_emerge
Date: Thu, 03 Jul 2008 07:04:51
Message-Id: E1KEIs1-00039I-EB@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-07-03 07:04:44 +0000 (Thu, 03 Jul 2008)
3 New Revision: 10905
4
5 Modified:
6 main/trunk/pym/_emerge/__init__.py
7 Log:
8 Split out a new _add_prefetchers() method from Scheduler._merge().
9
10
11 Modified: main/trunk/pym/_emerge/__init__.py
12 ===================================================================
13 --- main/trunk/pym/_emerge/__init__.py 2008-07-03 06:49:48 UTC (rev 10904)
14 +++ main/trunk/pym/_emerge/__init__.py 2008-07-03 07:04:44 UTC (rev 10905)
15 @@ -7044,6 +7044,7 @@
16 self._task_queue = deque()
17 self._running_tasks = set()
18 self._max_jobs = 1
19 + self._prefetchers = weakref.WeakValueDictionary()
20 self._parallel_fetch = False
21 features = self.settings.features
22 if "parallel-fetch" in features and \
23 @@ -7153,6 +7154,34 @@
24
25 return os.EX_OK
26
27 + def _add_prefetchers(self):
28 +
29 + if not self._parallel_fetch:
30 + return
31 +
32 + if self._parallel_fetch:
33 + portage.writemsg(">>> starting parallel fetch\n")
34 +
35 + prefetchers = self._prefetchers
36 + getbinpkg = "--getbinpkg" in self.myopts
37 +
38 + for pkg in self._mergelist:
39 + if not isinstance(pkg, Package):
40 + continue
41 + if pkg.type_name == "ebuild":
42 + self._add_task(EbuildFetcherAsync(
43 + logfile=self._fetch_log,
44 + pkg=pkg, register=self._register,
45 + unregister=self._unregister))
46 + elif pkg.type_name == "binary" and getbinpkg and \
47 + pkg.root_config.trees["bintree"].isremote(pkg.cpv):
48 + prefetcher = BinpkgFetcherAsync(
49 + logfile=self._fetch_log,
50 + pkg=pkg, register=self._register,
51 + unregister=self._unregister)
52 + prefetchers[pkg] = prefetcher
53 + self._add_task(prefetcher)
54 +
55 def merge(self):
56
57 if "--resume" in self.myopts:
58 @@ -7180,6 +7209,8 @@
59
60 mtimedb.commit()
61
62 + self._add_prefetchers()
63 +
64 try:
65 rval = self._merge()
66 finally:
67 @@ -7327,29 +7358,6 @@
68 ldpath_mtimes = mtimedb["ldpath"]
69 logger = self._logger
70
71 - prefetchers = weakref.WeakValueDictionary()
72 - getbinpkg = "--getbinpkg" in self.myopts
73 -
74 - if self._parallel_fetch:
75 - portage.writemsg(">>> starting parallel fetch\n")
76 - for pkg in mylist:
77 - if not isinstance(pkg, Package):
78 - continue
79 - if pkg.type_name == "ebuild":
80 - self._add_task(EbuildFetcherAsync(
81 - logfile=self._fetch_log,
82 - pkg=pkg, register=self._register,
83 - unregister=self._unregister))
84 - elif pkg.type_name == "binary" and getbinpkg and \
85 - pkg.root_config.trees["bintree"].isremote(pkg.cpv):
86 - prefetcher = BinpkgFetcherAsync(
87 - logfile=self._fetch_log,
88 - pkg=pkg, register=self._register,
89 - unregister=self._unregister)
90 - prefetchers[pkg] = prefetcher
91 - self._add_task(prefetcher)
92 - del prefetcher
93 -
94 root_config = self.trees[self.target_root]["root_config"]
95 mymergelist = mylist
96 myfeat = self.settings.features[:]
97 @@ -7392,8 +7400,7 @@
98 self._execute_task(bad_resume_opts,
99 failed_fetches,
100 mydbapi, pkg_count,
101 - myfeat, mymergelist, x,
102 - prefetchers)
103 + myfeat, mymergelist, x)
104 except self._pkg_failure, e:
105 return e.status
106 return self._post_merge(mtimedb,
107 @@ -7401,9 +7408,10 @@
108
109 def _execute_task(self, bad_resume_opts,
110 failed_fetches, mydbapi, pkg_count, myfeat,
111 - mymergelist, pkg, prefetchers):
112 + mymergelist, pkg):
113 favorites = self._favorites
114 mtimedb = self._mtimedb
115 + prefetchers = self._prefetchers
116 mergecount = pkg_count.curval
117 pkgsettings = self.pkgsettings[pkg.root]
118 buildpkgonly = "--buildpkgonly" in self.myopts
119
120 --
121 gentoo-commits@l.g.o mailing list