diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index d418a1d..bf219b0 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -1422,13 +1422,17 @@ void postUsingCellular(bool forcePost) { // Post success, remove the data that previously sent from queue xSemaphoreTake(mutexMeasurementCycleQueue, portMAX_DELAY); - measurementCycleQueue.erase(measurementCycleQueue.begin(), - measurementCycleQueue.begin() + queueSize); if (measurementCycleQueue.capacity() > RESERVED_MEASUREMENT_CYCLE_CAPACITY) { Serial.println("measurementCycleQueue capacity more than reserved space, resizing.."); - measurementCycleQueue.resize(RESERVED_MEASUREMENT_CYCLE_CAPACITY); + std::vector tmp; + tmp.reserve(RESERVED_MEASUREMENT_CYCLE_CAPACITY); + measurementCycleQueue.swap(tmp); + } else { + // If not more than the capacity, then just clear all the values + measurementCycleQueue.clear(); } + xSemaphoreGive(mutexMeasurementCycleQueue); }