Refactor shared memory storage to allow for multiple named datasets

This commit is contained in:
Patrick Niklaus
2018-03-28 12:11:47 +00:00
committed by Patrick Niklaus
parent bc120776f0
commit 666ce46d36
8 changed files with 169 additions and 98 deletions
+8 -7
View File
@@ -15,14 +15,13 @@
using namespace osrm;
void removeLocks() { storage::SharedMonitor<storage::SharedDataTimestamp>::remove(); }
void removeLocks() { storage::SharedMonitor<storage::SharedRegionRegister>::remove(); }
void deleteRegion(const storage::SharedDataType region)
void deleteRegion(const storage::SharedRegionRegister::ShmKey key)
{
if (storage::SharedMemory::RegionExists(region) && !storage::SharedMemory::Remove(region))
if (storage::SharedMemory::RegionExists(key) && !storage::SharedMemory::Remove(key))
{
util::Log(logWARNING) << "could not delete shared memory region "
<< storage::regionToString(region);
util::Log(logWARNING) << "could not delete shared memory region " << key;
}
}
@@ -43,8 +42,10 @@ void springClean()
}
else
{
deleteRegion(storage::REGION_1);
deleteRegion(storage::REGION_2);
for (auto key : util::irange<std::uint8_t>(0, storage::SharedRegionRegister::MAX_SHM_KEYS))
{
deleteRegion(key);
}
removeLocks();
}
}