sys/event: add API to start periodic event without initial delay #20911
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contribution description
Depending on what you want, a periodic event could happen the first time after the first interval, or without initial delay.
Only the first variant is implemented in RIOT so far. This adds an API to start it without delay.
Currently I am misusing the timed events for that. I initialize them with 0 delay and in their callback I re-initialize and add them again with actual delay. The reinit is an invitation for race conditions if the event could also be added from another thread as the event thread.
Testing procedure
I added a call to the new API in
tests/sys/event_ztimer
.Issues/PRs references