Beispiel #1
0
 def receive(self, message):
     if message == ("_forward", ANY):
         _, payload = message
         self.actor << payload
     elif message == ("terminated", self.actor):
         _, actor = message
         if self.keep_running:
             spawn_later(1.0, self._do_spawn)
         else:
             self.stop()
     else:
         log("Contained actor sent a message to parent: %r" % (message,))
Beispiel #2
0
 def receive(self, message):
     if message == ('_forward', ANY):
         _, payload = message
         self.actor << payload
     elif message == ('terminated', self.actor):
         _, actor = message
         if self.keep_running:
             spawn_later(1.0, self._do_spawn)
         else:
             self.stop()
     else:
         log("Contained actor sent a message to parent: %r" % (message, ))
Beispiel #3
0
 def receive(self, message):
     if message == ('_forward', ANY):
         _, payload = message
         self.actor << payload
     elif message == ('terminated', self.actor):
         _, actor = message
         if self.keep_running:
             after(1.0).do(self._do_spawn)
         else:
             log("actor terminated but not re-spawning actor; pass --keepruning/-k to change this behaviour")
             self.stop()
     else:
         Events.log(Message("Contained actor sent a message to parent: %r" % (message,)))
Beispiel #4
0
    def close(self):
        log()

        self.sock.sendMultipart((self.our_addr, DISCONNECT))
        if not _actor.TESTING:
            # have to avoid this during testing, and it's not needed anyway;
            # during testing, since everything is running in the same thread with no remoting (by default)
            # this will unnecessarily give control back to the test which means stuff will happen in the middle
            # of closing.
            # XXX: this actually should be possible regardless of the above comment
            yield sleep(0)

        self._kill_queue()
        self._emit_termination_messages()
        self.sock.shutdown()
        self.sock = self.owner = None
Beispiel #5
0
 def established(self, remote_version):
     log()
     self.known_remote_version = remote_version
     self._flush_queue()
     del self.queue