Blame | Last modification | View Log | RSS feed
<?phpnamespace React\EventLoop\Tick;use SplQueue;/*** A tick queue implementation that can hold multiple callback functions** This class should only be used internally, see LoopInterface instead.** @see LoopInterface* @internal*/final class FutureTickQueue{private $queue;public function __construct(){$this->queue = new SplQueue();}/*** Add a callback to be invoked on a future tick of the event loop.** Callbacks are guaranteed to be executed in the order they are enqueued.** @param callable $listener The callback to invoke.*/public function add($listener){$this->queue->enqueue($listener);}/*** Flush the callback queue.*/public function tick(){// Only invoke as many callbacks as were on the queue when tick() was called.$count = $this->queue->count();while ($count--) {\call_user_func($this->queue->dequeue());}}/*** Check if the next tick queue is empty.** @return boolean*/public function isEmpty(){return $this->queue->isEmpty();}}