FIX: fixed automated deletion of tracks after time
This commit is contained in:
@@ -113,16 +113,16 @@ namespace TrackList
|
|||||||
void TrackList::checkTrackStore()
|
void TrackList::checkTrackStore()
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(mx_);
|
std::lock_guard<std::mutex> 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::seconds>(std::chrono::system_clock::now() - iter->second->getLastUpdateTime()).count() >= trackNoUpdateTime)
|
||||||
{
|
{
|
||||||
auto it = TrackStore_.find(key);
|
iter = TrackStore_.erase(iter);
|
||||||
TrackStore_.erase(it);
|
}else {
|
||||||
|
iter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ SCENARIO("Testing the SimCore SensorManager with local sensors")
|
|||||||
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(10000));
|
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();
|
SensorManager_->stop();
|
||||||
|
|||||||
Reference in New Issue
Block a user