private function loop()
    {
        $c = $this->controller;

        if (is_callable([$c, 'throttle'])) {
            $throttle = function () use ($c) {
                return $c->throttle();
            };
        } else {
            $throttle = function () {
                return $this->throttle();
            };
        }

        // The entire runtime loop
        while ($c->signal()) {

            $c->process();
            
            time_nanosleep(0, $throttle());
        }
    }