Title says it all.
Created attachment 158946 [details] Patch
Comment on attachment 158946 [details] Patch This fix is OK. In the long run, I'd prefer a less whacky ownership model: Put the callback in a smart pointer, have its destructor lock the shutdown mutex and invalidate and unschedule its timer, and have timerDidFire lock the shutdown mutex and double-check that the timer is still valid.
This never landed but the code has changed significantly since. Lets close.