From acbc714acbaf253bf121a217a755089c74c7f01b Mon Sep 17 00:00:00 2001 From: Jay Freeman Date: Wed, 22 Apr 2009 01:03:34 +0000 Subject: The beginning of the future: futzing with APT. git-svn-id: http://svn.telesphoreo.org/trunk@601 514c082c-b64e-11dc-b46d-3d985efe055d --- data/apt7/parallel.diff | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 data/apt7/parallel.diff (limited to 'data/apt7/parallel.diff') diff --git a/data/apt7/parallel.diff b/data/apt7/parallel.diff new file mode 100644 index 000000000..1643fd2c7 --- /dev/null +++ b/data/apt7/parallel.diff @@ -0,0 +1,33 @@ +diff -ru apt-0.6.46.4.1/apt-pkg/acquire.cc apt-0.6.46.4.1+iPhone/apt-pkg/acquire.cc +--- apt-0.6.46.4.1/apt-pkg/acquire.cc 2006-12-04 14:37:34.000000000 +0000 ++++ apt-0.6.46.4.1+iPhone/apt-pkg/acquire.cc 2009-01-21 10:47:16.000000000 +0000 +@@ -238,9 +238,27 @@ + /* Single-Instance methods get exactly one queue per URI. This is + also used for the Access queue method */ + if (Config->SingleInstance == true || QueueMode == QueueAccess) +- return U.Access; ++ return U.Access; ++ string name(U.Access + ':' + U.Host); + +- return U.Access + ':' + U.Host; ++ int parallel(_config->FindI("Acquire::"+U.Access+"::MaxParallel",0)); ++ if (parallel <= 0) ++ return name; ++ ++ typedef map indexmap; ++ static indexmap indices; ++ ++ pair cache(indices.insert(indexmap::value_type(name, -1))); ++ if (cache.second || cache.first->second == -1) { ++ int &index(indices[U.Access]); ++ if (index >= parallel) ++ index = 0; ++ cache.first->second = index++; ++ } ++ ++ ostringstream value; ++ value << U.Access << "::" << cache.first->second; ++ return value.str(); + } + /*}}}*/ + // Acquire::GetConfig - Fetch the configuration information /*{{{*/ -- cgit v1.2.3