reset(force = false) {
        if (this.isRunning && !force) {
            // mark we want to reset it on the next tick
            this.resetSentinel = true;
        } else {