Terrasync: don't busy wait when no requests are running.

This commit is contained in:
James Turner
2013-10-28 14:51:36 +00:00
parent fdf6fc32ff
commit 2f42a8714c
2 changed files with 11 additions and 0 deletions

View File

@@ -643,6 +643,12 @@ void SGTerraSync::SvnThread::runInternal()
}
_busy = anySlotBusy;
if (!anySlotBusy) {
// wait on the blocking deque here, otherwise we spin
// the loop very fast, since _http::update with no connections
// active returns immediately.
waitingTiles.waitOnNotEmpty();
}
} // of thread running loop
}

View File

@@ -386,6 +386,11 @@ public:
return this->queue.size();
}
void waitOnNotEmpty() {
SGGuard<SGMutex> g(mutex);
while (this->queue.empty())
not_empty.wait(mutex);
}
private:
/**