コード例 #1
0
 /**
  * Flush the callback queue.
  *
  * Invokes callbacks which were on the queue when tick() was called and newly added ones.
  */
 public function tick()
 {
     while (!$this->queue->isEmpty() && $this->loop->isRunning()) {
         $this->callback = $this->queue->dequeue();
         $callback = $this->callback;
         // without this proxy PHPStorm marks line as fatal error.
         $callback($this->loop);
     }
 }
コード例 #2
0
ファイル: Loop.php プロジェクト: kraken-php/framework
 /**
  * @override
  * @inheritDoc
  */
 public function getFlowController()
 {
     return $this->loop->getFlowController();
 }
コード例 #3
0
ファイル: Timer.php プロジェクト: kraken-php/framework
 /**
  * @override
  * @inheritDoc
  */
 public function cancel()
 {
     if (isset($this->loop)) {
         $this->loop->cancelTimer($this);
     }
 }
コード例 #4
0
ファイル: SelectLoop.php プロジェクト: kraken-php/framework
 /**
  * @override
  * @inheritDoc
  */
 public function swap(LoopModelInterface $loop, $all = false)
 {
     $this->stop();
     $loop->stop();
     $list = $all === true ? $this : $this->getTransferableProperties();
     foreach ($list as $key => $val) {
         $tmp = $loop->{$key};
         $loop->{$key} = $this->{$key};
         $this->{$key} = $tmp;
     }
     return $this;
 }
コード例 #5
0
ファイル: LoopTest.php プロジェクト: kraken-php/framework
 /**
  * @dataProvider loopsProvider
  * @param LoopExtendedInterface|LoopModelInterface|mixed $loop
  */
 public function testApiFlush_FlushesAllHandlers_WhenAllFlagSetToTrue($loop)
 {
     $stream = $this->createStream();
     $loop->onAfterTick($this->expectCallableNever());
     $loop->onBeforeTick($this->expectCallableNever());
     $loop->addWriteStream($stream, $this->expectCallableNever());
     $loop->addReadStream($stream, $this->expectCallableNever());
     $loop->erase(true);
     $loop->tick();
     unset($stream);
     unset($loop);
 }