Example #1
0
 public function __destruct()
 {
     foreach ($this->_streams as $key => $stream) {
         unset($this->_streams[$key]);
     }
     $this->stop();
     event_base_free($this->_eventBase);
 }
Example #2
0
 /**
  * Destroy libevent resource if it is opened
  *
  * @return void
  */
 private function destroyResource()
 {
     foreach ($this->events as $event) {
         $this->removeEvent($event);
     }
     if ($this->handle) {
         event_base_loopexit($this->handle, 1);
         event_base_free($this->handle);
         $this->handle = null;
     }
 }
Example #3
0
 private function become_intern($request_message)
 {
     $intern = new Prefork_Intern($this);
     $pid = $this->fork_process();
     if ($pid === 0) {
         // Interns only past this point
         event_base_loopbreak($this->event_base);
         event_base_reinit($this->event_base);
         foreach ($this->events as $i => $event) {
             event_del($event);
             event_free($event);
             unset($this->events[$i]);
         }
         event_base_free($this->event_base);
         $intern->start_request($request_message);
         $this->intern = $intern;
         return true;
     }
     $this->intern_pid = $pid;
     if (!$this->single_interns) {
         $this->make_offer();
     }
     return false;
 }
 function _closeConnections()
 {
     if (APP_DEBUG === true) {
         Log::write('eSeal offline. 电子铅封退出。', Log::INFO);
     }
     foreach (self::$buffers as $key => $buf) {
         event_buffer_disable($buf, EV_READ | EV_WRITE);
         event_buffer_free($buf);
         unset(self::$buffers[$key]);
     }
     foreach (self::$connections as $key => $conn) {
         fclose($conn);
         unset(self::$connections[$key]);
     }
     event_base_loopexit(self::$base);
     event_base_free(self::$base);
     fclose(self::$socket_server);
 }
 public function __destruct()
 {
     if ($this->events) {
         event_base_free($this->events);
     }
 }
 /**
  * run Event
  */
 private function RunEvent()
 {
     $this->BaseEvent = event_base_new();
     $this->ServerEvent = event_new();
     if ($this->ControlProcess) {
         $SIGUSR2_Event = event_new();
         event_set($SIGUSR2_Event, SIGUSR2, EV_SIGNAL | EV_PERSIST, array($this, 'evcb_Signal'), SIGUSR2);
         event_base_set($SIGUSR2_Event, $this->BaseEvent);
         event_add($SIGUSR2_Event);
         $SIGTRAP_Event = event_new();
         event_set($SIGTRAP_Event, SIGTRAP, EV_SIGNAL, array($this, 'evcb_Signal'), SIGTRAP);
         event_base_set($SIGTRAP_Event, $this->BaseEvent);
         event_add($SIGTRAP_Event);
         $SIGTERM_Event = event_new();
         event_set($SIGTERM_Event, SIGTERM, EV_SIGNAL, array($this, 'evcb_Signal'), SIGTERM);
         event_base_set($SIGTERM_Event, $this->BaseEvent);
         event_add($SIGTERM_Event);
         $SIGALRM_Event = event_new();
         event_set($SIGALRM_Event, SIGALRM, EV_SIGNAL | EV_PERSIST, array($this, 'evcb_Signal'), SIGALRM);
         event_base_set($SIGALRM_Event, $this->BaseEvent);
         event_add($SIGALRM_Event);
         pcntl_alarm($this->Config['ClientGCPooling']);
     } else {
         event_set($this->ServerEvent, $this->ServerSocket, EV_READ, array($this, 'evcb_doAccept'));
         event_base_set($this->ServerEvent, $this->BaseEvent);
         event_add($this->ServerEvent);
         $this->CommandEvent = event_new();
         event_set($this->CommandEvent, $this->CommandSocket, EV_READ | EV_PERSIST, array($this, 'evcb_CommandEvent'));
         event_base_set($this->CommandEvent, $this->BaseEvent);
         event_add($this->CommandEvent);
     }
     event_base_loop($this->BaseEvent);
     echo "Do End Event!\n";
     if ($this->ControlProcess) {
         event_free($SIGTRAP_Event);
         event_free($SIGTERM_Event);
         event_free($SIGALRM_Event);
         event_free($SIGUSR2_Event);
     }
     event_free($this->ServerEvent);
     event_free($this->CommandEvent);
     event_base_free($this->BaseEvent);
     fclose($this->ServerSocket);
 }
Example #7
0
 /**
  * Frees up any open resources
  */
 public function __destruct()
 {
     foreach ($this->events as $event) {
         $event->free();
     }
     event_base_free($this->resource);
     unset($this->resource);
 }
Example #8
0
 /**
  * Free the base resource
  *
  * @link http://www.php.net/manual/function.event-base-free.php
  * @see event_base_free
  */
 public function free()
 {
     /**
      * @var EventInterface $event
      */
     foreach ($this->events as $event) {
         $this->freeEvent($event->getName(), true);
     }
     if (is_resource($this->resource)) {
         event_base_free($this->resource);
     }
 }