summaryrefslogtreecommitdiff
path: root/src/DownloadEngine.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-02-28 16:04:52 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-02-28 16:04:52 +0000
commit72e475dfdeaa4a87dff0eef994e7814e94c40363 (patch)
tree94a84e90c14876db223e4a733f651fe0b034f5e9 /src/DownloadEngine.cc
parentc342bde9627b434effbc0cd10b817670d1da0923 (diff)
2010-03-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Avoid to calculate end() iterator in each loop. std::deque is particularly slow. Make sure that recalculate end iterator if element is erased during loop.
Diffstat (limited to 'src/DownloadEngine.cc')
-rw-r--r--src/DownloadEngine.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/DownloadEngine.cc b/src/DownloadEngine.cc
index 57db8d0a..c9f042c3 100644
--- a/src/DownloadEngine.cc
+++ b/src/DownloadEngine.cc
@@ -282,7 +282,7 @@ void DownloadEngine::poolSocket(const std::string& ipaddr,
}
_lastSocketPoolScan.reset();
for(std::multimap<std::string, SocketPoolEntry>::iterator i =
- _socketPool.begin(); i != _socketPool.end(); ++i) {
+ _socketPool.begin(), eoi = _socketPool.end(); i != eoi; ++i) {
if(!(*i).second.isTimeout()) {
newPool.insert(*i);
}
@@ -357,8 +357,8 @@ DownloadEngine::findSocketPoolEntry(const std::string& ipaddr, uint16_t port)
std::pair<std::multimap<std::string, SocketPoolEntry>::iterator,
std::multimap<std::string, SocketPoolEntry>::iterator> range =
_socketPool.equal_range(addr);
- for(std::multimap<std::string, SocketPoolEntry>::iterator i = range.first;
- i != range.second; ++i) {
+ for(std::multimap<std::string, SocketPoolEntry>::iterator i =
+ range.first, eoi = range.second; i != eoi; ++i) {
const SocketPoolEntry& e = (*i).second;
if(!e.isTimeout()) {
logger->info("Found socket for %s", addr.c_str());
@@ -401,8 +401,8 @@ DownloadEngine::popPooledSocket
(const std::vector<std::string>& ipaddrs, uint16_t port)
{
SharedHandle<SocketCore> s;
- for(std::vector<std::string>::const_iterator i = ipaddrs.begin();
- i != ipaddrs.end(); ++i) {
+ for(std::vector<std::string>::const_iterator i = ipaddrs.begin(),
+ eoi = ipaddrs.end(); i != eoi; ++i) {
s = popPooledSocket(*i, port);
if(!s.isNull()) {
break;
@@ -417,8 +417,8 @@ DownloadEngine::popPooledSocket
const std::vector<std::string>& ipaddrs, uint16_t port)
{
SharedHandle<SocketCore> s;
- for(std::vector<std::string>::const_iterator i = ipaddrs.begin();
- i != ipaddrs.end(); ++i) {
+ for(std::vector<std::string>::const_iterator i = ipaddrs.begin(),
+ eoi = ipaddrs.end(); i != eoi; ++i) {
s = popPooledSocket(options, *i, port);
if(!s.isNull()) {
break;