Просмотр исходного кода

move the mapping generation to the top as the response reading is
currently waiting for the solver to complete and not non-blocking
so we can generate the map while waiting for the solver

David Kalnischkies лет назад: 15
Родитель
Сommit
c80a49f556
1 измененных файлов с 5 добавлено и 5 удалено
  1. 5 5
      apt-pkg/edsp.cc

+ 5 - 5
apt-pkg/edsp.cc

@@ -221,11 +221,6 @@ bool EDSP::WriteRequest(pkgDepCache &Cache, FILE* output, bool const Upgrade,
 									/*}}}*/
 									/*}}}*/
 // EDSP::ReadResponse - from the given file descriptor			/*{{{*/
 // EDSP::ReadResponse - from the given file descriptor			/*{{{*/
 bool EDSP::ReadResponse(int const input, pkgDepCache &Cache) {
 bool EDSP::ReadResponse(int const input, pkgDepCache &Cache) {
-	FileFd in;
-	in.OpenDescriptor(input, FileFd::ReadOnly);
-	pkgTagFile response(&in);
-	pkgTagSection section;
-
 	/* We build an map id to mmap offset here
 	/* We build an map id to mmap offset here
 	   In theory we could use the offset as ID, but then VersionCount
 	   In theory we could use the offset as ID, but then VersionCount
 	   couldn't be used to create other versionmappings anymore and it
 	   couldn't be used to create other versionmappings anymore and it
@@ -236,6 +231,11 @@ bool EDSP::ReadResponse(int const input, pkgDepCache &Cache) {
 		for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; ++V)
 		for (pkgCache::VerIterator V = P.VersionList(); V.end() == false; ++V)
 			VerIdx[V->ID] = V.Index();
 			VerIdx[V->ID] = V.Index();
 
 
+	FileFd in;
+	in.OpenDescriptor(input, FileFd::ReadOnly);
+	pkgTagFile response(&in);
+	pkgTagSection section;
+
 	while (response.Step(section) == true) {
 	while (response.Step(section) == true) {
 		std::string type;
 		std::string type;
 		if (section.Exists("Install") == true)
 		if (section.Exists("Install") == true)