PHPDaemon\Request\Generic::finish PHP Method

finish() public method

Finish the request
public finish ( $status, $zombie = false ) : void
return void
    public function finish($status = 0, $zombie = false)
    {
        if ($this->state === Generic::STATE_FINISHED) {
            return;
        }
        if (!$zombie) {
            $this->state = Generic::STATE_FINISHED;
        }
        if (!($r = $this->running)) {
            $this->onWakeup();
        }
        while (($cb = array_shift($this->shutdownFuncs)) !== null) {
            try {
                $cb($this);
            } catch (\Exception $e) {
                Daemon::uncaughtExceptionHandler($e);
                // @TODO: break?
            }
        }
        if (!$r) {
            $this->onSleep();
        }
        $this->event('finish');
        $this->onFinish();
        $this->cleanupEventHandlers();
        if (Daemon::$compatMode) {
            return;
        }
        ++Daemon::$process->counterGC;
        if (Daemon::$compatMode) {
            return;
        }
        if (!Daemon::$obInStack) {
            // preventing recursion
            ob_flush();
        }
        if ($status !== -1) {
            $appStatus = 0;
            $this->postFinishHandler(function () use($appStatus, $status) {
                $this->upstream->endRequest($this, $appStatus, $status);
                $this->free();
            });
        } else {
            $this->free();
        }
    }