Пример #1
0
    def finalize(self):
        for i in self._all_threads:
            i.join()

        for sock in self._req_socks:
            utils.graceful_close(sock)
        utils.graceful_close(self._router)
        if not self._context.closed:
            self._context.destroy(0)
Пример #2
0
    def main_cleanup(self):
        while True:
            with self._context_lock:
                now = time.time()
                for k, v in list(self.storage.items()):
                    if (now - v['last_heartbeat']) > _configs.NS_CLEANUP_WAIT:
                        info, req_sock = self.storage.unregister(k)
                        self._poller.unregister(req_sock)
                        utils.graceful_close(req_sock)
                        self._req_socks.remove(req_sock)

                        # TODO:: use controller's heartbeat
                        all_peers_to_inform = set()
                        for i in info['inputs']:
                            all_peers_to_inform = all_peers_to_inform.union(
                                self.storage.get_outputs(i))
                        for i in info['outputs']:
                            all_peers_to_inform = all_peers_to_inform.union(
                                self.storage.get_inputs(i))
                        logger.debug('Inform died: {}.'.format(
                            str(all_peers_to_inform)))

                        for peer in all_peers_to_inform:
                            self._control_send_queue.put({
                                'sock':
                                self.storage.get_req_sock(peer),
                                'countdown':
                                _configs.CTL_CTL_SND_COUNTDOWN,
                                'payload': {
                                    'action':
                                    _configs.Actions.NS_NOTIFY_CLOSE_REQ,
                                    'uid': k
                                },
                            })
                        logger.info(
                            'Unregister timeout controller {}.'.format(k))
            time.sleep(_configs.NS_CLEANUP_WAIT)
Пример #3
0
 def finalize(self):
     graceful_close(self._tosock)
     graceful_close(self._frsock)
     self._context.term()
Пример #4
0
 def finalize(self):
     self._stop_event.set()
     for i in self._all_threads:
         i.join()
     for sock in self._all_socks:
         utils.graceful_close(sock)
Пример #5
0
 def close_socket(self, sock):
     utils.graceful_close(sock)
     self._all_socks.remove(sock)
     return self