Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. UvDriver.php

function UvDriver::deactivate

Overrides AbstractDriver::deactivate

File

vendor/revolt/event-loop/src/EventLoop/Driver/UvDriver.php, line 211

Class

UvDriver

Namespace

Revolt\EventLoop\Driver

Code

protected function deactivate(DriverCallback $callback) : void {
    $id = $callback->id;
    if (!isset($this->events[$id])) {
        return;
    }
    $event = $this->events[$id];
    if (!\uv_is_active($event)) {
        return;
    }
    if ($callback instanceof StreamCallback) {
        $flags = 0;
        foreach ($this->uvCallbacks[(int) $event] as $w) {
            \assert($w instanceof StreamCallback);
            $flags |= $w->invokable ? $this->getStreamCallbackFlags($w) : 0;
        }
        if ($flags) {
            \uv_poll_start($event, $flags, $this->ioCallback);
        }
        else {
            \uv_poll_stop($event);
        }
    }
    elseif ($callback instanceof TimerCallback) {
        \uv_timer_stop($event);
    }
    elseif ($callback instanceof SignalCallback) {
        \uv_signal_stop($event);
    }
    else {
        // @codeCoverageIgnoreStart
        throw new \Error("Unknown callback type");
        // @codeCoverageIgnoreEnd
    }
}
RSS feed
Powered by Drupal