Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Call the callback given by the first parameter
<?php call_user_func(callable $callback, mixed ...$args): mixed
<?php     {

        $timers = $this->timerEvents;

        $this->timerCallback = function ($_, $__, $timer) use ($timers) {

            \call_user_func($timer->getCallback(), $timer);



            if (!$timer->isPeriodic() && $timers->contains($timer)) {

                $this->cancelTimer($timer);
<?php             $key = (int) $stream;



            if (Event::READ === (Event::READ & $flags) && isset($read[$key])) {

                \call_user_func($read[$key], $stream);

            }



            if (Event::WRITE === (Event::WRITE & $flags) && isset($write[$key])) {
<?php             }



            if (Event::WRITE === (Event::WRITE & $flags) && isset($write[$key])) {

                \call_user_func($write[$key], $stream);

            }

        };

    }
<?php     private function getStreamListenerClosure($stream, $listener)

    {

        return function () use ($stream, $listener) {

            \call_user_func($listener, $stream);

        };

    }
<?php         $that = $this;

        $timers = $this->timers;

        $callback = function () use ($timer, $timers, $that) {

            \call_user_func($timer->getCallback(), $timer);



            if ($timers->contains($timer)) {

                $that->cancelTimer($timer);
<?php         $timer = new Timer($interval, $callback, true);



        $callback = function () use ($timer) {

            \call_user_func($timer->getCallback(), $timer);

        };



        $event = $this->loop->timer($interval, $interval, $callback);
<?php         $that = $this;

        $timers = $this->timerEvents;

        $this->timerCallback = function ($_, $__, $timer) use ($timers, $that) {

            \call_user_func($timer->getCallback(), $timer);




            if (!$timers->contains($timer)) {
<?php             $key = (int) $stream;



            if (\EV_READ === (\EV_READ & $flags) && isset($read[$key])) {

                \call_user_func($read[$key], $stream);

            }



            if (\EV_WRITE === (\EV_WRITE & $flags) && isset($write[$key])) {
<?php             }



            if (\EV_WRITE === (\EV_WRITE & $flags) && isset($write[$key])) {

                \call_user_func($write[$key], $stream);

            }

        };

    }
<?php         }



        $callback = function () use ($stream, $listener) {

            \call_user_func($listener, $stream);

        };



        $event = new IOEvent($callback, $stream, IOEvent::READ);
<?php         }



        $callback = function () use ($stream, $listener) {

            \call_user_func($listener, $stream);

        };



        $event = new IOEvent($callback, $stream, IOEvent::WRITE);
<?php         $that = $this;

        $timers = $this->timerEvents;

        $callback = function () use ($timer, $timers, $that) {

            \call_user_func($timer->getCallback(), $timer);



            if ($timers->contains($timer)) {

                $that->cancelTimer($timer);
<?php         $timer = new Timer($interval, $callback, true);



        $callback = function () use ($timer) {

            \call_user_func($timer->getCallback(), $timer);

        };



        $event = new TimerEvent($callback, $interval, $interval);
<?php         $that = $this;

        $timers = $this->timers;

        $callback = function () use ($timer, $timers, $that) {

            \call_user_func($timer->getCallback(), $timer);



            if ($timers->contains($timer)) {

                $that->cancelTimer($timer);
<?php         $timer = new Timer($interval, $callback, true);



        $callback = function () use ($timer) {

            \call_user_func($timer->getCallback(), $timer);

        };



        $interval = $this->convertFloatSecondsToMilliseconds($interval);