Beispiel #1
0
 /**
  * {@inheritdoc}
  */
 public function clear()
 {
     parent::clear();
     if (null !== $this->signalTimer) {
         $this->signalTimer->stop();
         $this->signalTimer = $this->timer($this->signalTimer->getInterval(), true, [$this->signalManager, 'tick']);
         $this->signalTimer->unreference();
     }
 }
 public function __construct()
 {
     $this->queue = new \SplPriorityQueue();
     $this->timer = Loop\periodic(1, function () {
         $time = time();
         while (!$this->queue->isEmpty()) {
             $key = $this->queue->top();
             if (isset($this->expire[$key])) {
                 if ($time <= $this->expire[$key]) {
                     break;
                 }
                 unset($this->data[$key], $this->expire[$key], $this->ttl[$key]);
             }
             $this->queue->extract();
         }
         if ($this->queue->isEmpty()) {
             $this->timer->stop();
         }
     });
     $this->timer->stop();
     $this->timer->unreference();
 }