@MarkShughart 
This is probably fine here but it is blocking if you use this in a threaded context. One way around this is to use a timer object that expires and then check in the functions that rely on it being stable to make sure it's cleared.