diff --git a/src/esp_timer/timer.cpp b/src/esp_timer/timer.cpp index 48137ef..bb5568a 100644 --- a/src/esp_timer/timer.cpp +++ b/src/esp_timer/timer.cpp @@ -32,11 +32,17 @@ void ESPTimer::deinit() { waitForTaskExit(hMs_); waitForTaskExit(hMin_); - timeouts_.clear(); - intervals_.clear(); - secs_.clear(); - mss_.clear(); - mins_.clear(); + auto releaseStorage = [](auto& vec) { + using VecType = std::decay_t; + VecType empty{vec.get_allocator()}; + vec.swap(empty); + }; + + releaseStorage(timeouts_); + releaseStorage(intervals_); + releaseStorage(secs_); + releaseStorage(mss_); + releaseStorage(mins_); if (mutex_) { vSemaphoreDelete(mutex_);