예제 #1
0
 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))    
예제 #2
0
 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)