def _cmdrun(self, *args, cmd=None, dest=None, source=None): """ Runs as a separate thread for taking care of commands.""" try: if cmd == None: return value = cmd.run(*args) self.sendMsg(makeMsg(value,source,dest)) except Exception as e: self.sendMsg(makeErrorMsg(str(e), source, dest))
def flush(self): """ Make sure all messages get where they are going before shutdown.""" # LATER: Push all messages were they need to go. Right now just purging. try: while not self._msg_queue.empty(): self._msg_queue.get() except:pass finally:#deregister all tmps, makes sure all interface threads are dead while len(self._routees) > 0: id,routee = self._routees.popitem() if isinstance(routee, Interface): logging.debug("found interface that im deregistering") routee.handle_msg(makeMsg("shutting-down",None,id)) routee.close() logging.debug("deregistered: %s"%id)