public function tick(): int
    {
        $count = 0;
        $time = microtime(true);
        
        while (!$this->queue->isEmpty()) {
            list($timer, $timeout) = $this->queue->top();

            if (!$this->timers->contains($timer) || $timeout !== $this->timers[$timer]) {
                $this->queue->extract(); // Timer was removed from queue.
                continue;
            }

            if ($this->timers[$timer] > $time) { // Timer at top of queue has not expired.
                return $count;
            }

            // Remove and execute timer. Replace timer if persistent.
            $this->queue->extract();

            if ($timer->isPeriodic()) {
                $timeout = $time + $timer->getInterval();
                $this->queue->insert([$timer, $timeout], -$timeout);
                $this->timers[$timer] = $timeout;
            } else {
                $this->timers->detach($timer);
            }

            // Execute the timer.
            $timer->call();

            ++$count;
        }
        
        return $count;
    }
public function tick(): int
    {
        $count = 0;
        $time = microtime(true);
        
        while (!$this->queue->isEmpty()) {
            list($timer, $timeout) = $this->queue->top();

            if (!$this->timers->contains($timer) || $timeout !== $this->timers[$timer]) {
                $this->queue->extract(); // Timer was removed from queue.
                continue;
            }

            if ($this->timers[$timer] > $time) { // Timer at top of queue has not expired.
                return $count;
            }

            // Remove and execute timer. Replace timer if persistent.
            $this->queue->extract();

            if ($timer->isPeriodic()) {
                $timeout = $time + $timer->getInterval();
                $this->queue->insert([$timer, $timeout], -$timeout);
                $this->timers[$timer] = $timeout;
            } else {
                $this->timers->detach($timer);
            }

            // Execute the timer.
            $timer->call();

            ++$count;
        }
        
        return $count;
    }
public function tick ( ) : int { $ count = 0 ; $ time = microtime ( true ) ; while ( ! $ this -> queue -> isEmpty ( ) ) { list ( $ timer , $ timeout ) = $ this -> queue -> top ( ) ; if ( ! $ this -> timers -> contains ( $ timer ) || $ timeout !== $ this -> timers [ $ timer ] ) { $ this -> queue -> extract ( ) ; // Timer was removed from queue. continue ; } if ( $ this -> timers [ $ timer ] > $ time ) { // Timer at top of queue has not expired. return $ count ; } // Remove and execute timer. Replace timer if persistent. $ this -> queue -> extract ( ) ; if ( $ timer -> isPeriodic ( ) ) { $ timeout = $ time + $ timer -> getInterval ( ) ; $ this -> queue -> insert ( [ $ timer , $ timeout ] , - $ timeout ) ; $ this -> timers [ $ timer ] = $ timeout ; } else { $ this -> timers -> detach ( $ timer ) ; } // Execute the timer. $ timer -> call ( ) ; ++ $ count ; } return $ count ; }
Executes any pending timers. Returns the number of timers executed.

@return int

@internal
Executes any pending timers . Returns the number of timers executed .