This is racy. frameEvent can be set right after the call to reset, then we miss it.