Quote:
Originally Posted by KatoKrazy
....
There is pretty much zero chance that we will be able to process all the data during one runtime. It looks like we are going to have it process a few entries each time it wakes and then have it go back to sleep and wait to be scheduled by the RTOS again, making the list of "best" candidates truly just best effort at any given time.
This is pretty much a prescription for not making it reenterent. If your callback constantly takes more time to process the data such that your callback is being re-entered before it is finished, thus not exiting, I hope you can see that this will blow up your stack.
Reentrency is important for things like dynamically linked libraries. I would think a reentrancy requirement would make sense if you had more than one list with more than one timer event triggering the callback.
If your solution is maintaining state variables between callback invocations to determine where you are at in the processing your solution is probably not going to be reentrent.