Delete the espp::HighResolutionTimer timer handle in stop(), instead of just in the destructor.
Motivation and Context
When reviewing the code, it was determined that repeated calls to start(...) (even if they included stop()), would leak memory as esp_timer_create(...) was called multiple times without calling esp_timer_delete(...).
This PR fixes that problem by ensuring that stop() calls esp_timer_delete(...) if the timer_handle is not null.
How has this been tested?
Building and running the timer/example on a QtPy ESP32s3.
Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):
Types of changes
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update
[ ] Hardware (schematic, board, system design) change
[x] Software change
Checklist:
[ ] My change requires a change to the documentation.
[ ] I have added / updated the documentation related to this change via either README or WIKI
Software
[ ] I have added tests to cover my changes.
[ ] I have updated the .github/workflows/build.yml file to add my new test to the automated cloud build github action.
[x] All new and existing tests passed.
[x] My code follows the code style of this project.
Description
espp::HighResolutionTimer
timer handle instop()
, instead of just in the destructor.Motivation and Context
When reviewing the code, it was determined that repeated calls to
start(...)
(even if they includedstop()
), would leak memory asesp_timer_create(...)
was called multiple times without callingesp_timer_delete(...)
.This PR fixes that problem by ensuring that
stop()
callsesp_timer_delete(...)
if the timer_handle is not null.How has this been tested?
Building and running the
timer/example
on a QtPy ESP32s3.Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):
Types of changes
Checklist:
Software
.github/workflows/build.yml
file to add my new test to the automated cloud build github action.