Do not apply .ils.xml adjustments while building the cache
This commit is contained in:
parent
e37fd6ea1f
commit
bd0fa1fa5a
2 changed files with 12 additions and 0 deletions
|
@ -1412,6 +1412,8 @@ void NavDataCache::loadDatFiles(
|
||||||
|
|
||||||
void NavDataCache::doRebuild()
|
void NavDataCache::doRebuild()
|
||||||
{
|
{
|
||||||
|
rebuildInProgress = true;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
d->close(); // completely close the sqlite object
|
d->close(); // completely close the sqlite object
|
||||||
d->path.remove(); // remove the file on disk
|
d->path.remove(); // remove the file on disk
|
||||||
|
@ -1498,6 +1500,8 @@ void NavDataCache::doRebuild()
|
||||||
} catch (sg_exception& e) {
|
} catch (sg_exception& e) {
|
||||||
SG_LOG(SG_NAVCACHE, SG_ALERT, "caught exception rebuilding navCache:" << e.what());
|
SG_LOG(SG_NAVCACHE, SG_ALERT, "caught exception rebuilding navCache:" << e.what());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rebuildInProgress = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NavDataCache::readIntProperty(const string& key)
|
int NavDataCache::readIntProperty(const string& key)
|
||||||
|
@ -1719,6 +1723,12 @@ FGPositionedRef NavDataCache::loadById(PositionedID rowid)
|
||||||
|
|
||||||
sqlite3_int64 aptId;
|
sqlite3_int64 aptId;
|
||||||
FGPositionedRef pos = d->loadById(rowid, aptId);
|
FGPositionedRef pos = d->loadById(rowid, aptId);
|
||||||
|
if (rebuildInProgress) {
|
||||||
|
// Do not cache and apply ILS adjustment while rebuilding the cache.
|
||||||
|
// The adjustment process requires all ILS navaids to be present,
|
||||||
|
// which is not true during the cache rebuild.
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
d->cache.insert(it, PositionedCache::value_type(rowid, pos));
|
d->cache.insert(it, PositionedCache::value_type(rowid, pos));
|
||||||
d->cacheMisses++;
|
d->cacheMisses++;
|
||||||
|
|
||||||
|
|
|
@ -338,6 +338,8 @@ private:
|
||||||
|
|
||||||
class NavDataCachePrivate;
|
class NavDataCachePrivate;
|
||||||
std::unique_ptr<NavDataCachePrivate> d;
|
std::unique_ptr<NavDataCachePrivate> d;
|
||||||
|
|
||||||
|
bool rebuildInProgress = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // of namespace flightgear
|
} // of namespace flightgear
|
||||||
|
|
Loading…
Reference in a new issue