Fix performance window access to SharedMemory

This commit is contained in:
Alexander Bock
2015-12-23 14:41:17 -05:00
parent 0895d6e6d0
commit 1a4ea8763e
3 changed files with 11 additions and 4 deletions
@@ -87,7 +87,7 @@ void GuiPerformanceComponent::render() {
_performanceMemory = new ghoul::SharedMemory(RenderEngine::PerformanceMeasurementSharedData);
void* ptr = _performanceMemory;
void* ptr = _performanceMemory->memory();
PerformanceLayout* layout = reinterpret_cast<PerformanceLayout*>(ptr);
for (int i = 0; i < layout->nEntries; ++i) {
+9 -2
View File
@@ -917,10 +917,17 @@ void RenderEngine::storePerformanceMeasurements() {
maxValues * sizeof(PerformanceLayout::PerformanceLayoutEntry);
LINFO("Create shared memory of " << totalSize << " bytes");
try {
ghoul::SharedMemory::remove(PerformanceMeasurementSharedData);
}
catch (const ghoul::SharedMemory::SharedMemoryError& e) {
LINFOC(e.component, e.what());
}
ghoul::SharedMemory::create(PerformanceMeasurementSharedData, totalSize);
_performanceMemory = new ghoul::SharedMemory(PerformanceMeasurementSharedData);
void* ptr = _performanceMemory;
void* ptr = _performanceMemory->memory();
PerformanceLayout* layout = reinterpret_cast<PerformanceLayout*>(ptr);
layout->version = Version;
layout->nValuesPerEntry = nValues;
@@ -946,7 +953,7 @@ void RenderEngine::storePerformanceMeasurements() {
}
}
void* ptr = _performanceMemory;
void* ptr = _performanceMemory->memory();
PerformanceLayout* layout = reinterpret_cast<PerformanceLayout*>(ptr);
_performanceMemory->acquireLock();
for (int i = 0; i < nNodes; ++i) {