Code Duplication    Length = 18-21 lines in 2 locations

src/EventLoop.php 2 locations

@@ 148-165 (lines=18) @@
145
    /**
146
     * @inheritdoc
147
     */
148
    public function addTimer($interval, callable $callback, int $priority = 0) : Timer
149
    {
150
        $timer = new Timer($this, $interval, $callback, false, $priority);
151
152
        $callback = function ($evTimer) use ($timer) {
153
            call_user_func($timer->getCallback(), $timer, $evTimer);
154
155
            if ($this->isTimerActive($timer)) {
156
                $this->cancelTimer($timer);
157
            }
158
        };
159
160
        $event = $this->loop->timer($interval, 0, $callback, null, $priority);
161
162
        $this->timers->attach($timer, $event);
163
164
        return $timer;
165
    }
166
167
    /**
168
     * @inheritdoc
@@ 170-190 (lines=21) @@
167
    /**
168
     * @inheritdoc
169
     */
170
    public function addPeriodicTimer($interval, callable $callback, int $priority = 0) : Timer
171
    {
172
        $timer = new Timer($this, $interval, $callback, true, $priority);
173
174
        $internalCallback = function ($evTimer) use ($timer) {
175
            call_user_func($timer->getCallback(), $timer, $evTimer);
176
        };
177
178
        $event = $this->loop->periodic(
179
            $timer->getInterval(),
180
            $timer->getInterval(),
181
            null,
182
            $internalCallback,
183
            null,
184
            $priority
185
        );
186
187
        $this->timers->attach($timer, $event);
188
189
        return $timer;
190
    }
191
192
    /**
193
     * @inheritdoc