I think I might have found an approach. If I have a single timer that waits 
until it's time for the next expiry and then triggers the next delta wait, that 
would work. But I would need a way to get rid of the current running future. I 
read somewhere that futures can't generally be cancelled, but this seems to fit 
the bill: I will wait using 
[withTimeout](https://nim-lang.org/docs/asyncdispatch.html#withTimeout%2CFuture%5BT%5D%2Cint),
 and if the future needs to end early, I will complete it.

Reply via email to