diff --git a/src/Entities/Tracklist/Tracklist.cpp b/src/Entities/Tracklist/Tracklist.cpp index 7ced3f9..a98c360 100644 --- a/src/Entities/Tracklist/Tracklist.cpp +++ b/src/Entities/Tracklist/Tracklist.cpp @@ -113,16 +113,16 @@ namespace TrackList void TrackList::checkTrackStore() { std::lock_guard lock(mx_); - for (auto [key, value] : TrackStore_) + + for (auto iter = TrackStore_.begin(); iter != TrackStore_.end();) { - // value->getSensorTrackMessage() - if(value->getLastUpdateTime() >= std::chrono::system_clock::now() + std::chrono::seconds(trackNoUpdateTime)) + + if(duration_cast(std::chrono::system_clock::now() - iter->second->getLastUpdateTime()).count() >= trackNoUpdateTime) { - auto it = TrackStore_.find(key); - TrackStore_.erase(it); + iter = TrackStore_.erase(iter); + }else { + iter++; } - - } diff --git a/tests/test_SensorManager.cpp b/tests/test_SensorManager.cpp index c7f05ae..5b63f99 100644 --- a/tests/test_SensorManager.cpp +++ b/tests/test_SensorManager.cpp @@ -244,7 +244,7 @@ SCENARIO("Testing the SimCore SensorManager with local sensors") std::this_thread::sleep_for(std::chrono::milliseconds(10000)); - REQUIRE(SensorManager_->getTrackListUpdateRaw()->getSensors().at(0).getTracksCount() == 0); + REQUIRE(SensorManager_->getSensorListAsVector().at(0)->TrackStore.getSize() == 0); SensorManager_->stop();