def run(self): while not self._stopped and state.shutdown == 0: try: dest = receiveDataQueue.get(block=True, timeout=1) except Queue.Empty: continue if self._stopped: break # cycle as long as there is data # methods should return False if there isn't enough data, or the connection is to be aborted # state_* methods should return False if there isn't enough data, # or the connection is to be aborted try: BMConnectionPool().getConnectionByAddr(dest).process() # KeyError = connection object not found # AttributeError = state isn't implemented except (KeyError, AttributeError): pass except socket.error as err: if err.errno == errno.EBADF: BMConnectionPool().getConnectionByAddr(dest).set_state("close", 0) else: logger.error("Socket error: %s", str(err)) receiveDataQueue.task_done()
def run(self): while not self._stopped and state.shutdown == 0: try: dest = receiveDataQueue.get(block=True, timeout=1) except Queue.Empty: continue if self._stopped or state.shutdown: break # cycle as long as there is data # methods should return False if there isn't enough data, or the connection is to be aborted # state_* methods should return False if there isn't enough data, # or the connection is to be aborted try: BMConnectionPool().getConnectionByAddr(dest).process() # KeyError = connection object not found # AttributeError = state isn't implemented except (KeyError, AttributeError): pass except socket.error as err: if err.errno == errno.EBADF: BMConnectionPool().getConnectionByAddr(dest).set_state("close", 0) else: logger.error("Socket error: %s", str(err)) receiveDataQueue.task_done()
def run(self): while not self._stopped and state.shutdown == 0: try: dest = receiveDataQueue.get(block=True, timeout=1) except Queue.Empty: continue if self._stopped or state.shutdown: break # cycle as long as there is data # methods should return False if there isn't enough data, # or the connection is to be aborted # state_* methods should return False if there isn't # enough data, or the connection is to be aborted try: connection = BMConnectionPool().getConnectionByAddr(dest) # connection object not found except KeyError: receiveDataQueue.task_done() continue try: connection.process() # state isn't implemented except UnknownStateError: pass except socket.error as err: if err.errno == errno.EBADF: connection.set_state("close", 0) else: self.logger.error('Socket error: %s', err) except: self.logger.error('Error processing', exc_info=True) receiveDataQueue.task_done()