public function __destruct() { foreach ($this->_streams as $key => $stream) { unset($this->_streams[$key]); } $this->stop(); event_base_free($this->_eventBase); }
/** * 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; } }
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); }
/** * Frees up any open resources */ public function __destruct() { foreach ($this->events as $event) { $event->free(); } event_base_free($this->resource); unset($this->resource); }
/** * 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); } }