예제 #1
0
 def _on_registered_or_started(self, component, manager=None):
     if self._poller is None:
         if isinstance(component, BasePoller):
             self._poller = component
             self.fire(ready(self))
         else:
             if component is not self:
                 return
             component = findcmp(self.root, BasePoller)
             if component is not None:
                 self._poller = component
                 self.fire(ready(self))
             else:
                 self._poller = Poller().register(self)
                 self.fire(ready(self))
예제 #2
0
def test():
    m = Manager()

    poller = Poller().register(m)

    TCPServer(0).register(m)
    TCPClient().register(m)

    m.start()

    try:
        pollers = findtype(m, BasePoller, all=True)
        assert len(pollers) == 1
        assert pollers[0] is poller
    finally:
        m.stop()
예제 #3
0
 def _on_registered_or_started(self, component, manager=None):
     if self._poller is None:
         if isinstance(component, BasePoller):
             self._poller = component
             self._poller.addReader(self, self._sock)
             self.fire(ready(self, (self.host, self.port)))
         else:
             if component is not self:
                 return
             component = findcmp(self.root, BasePoller)
             if component is not None:
                 self._poller = component
                 self._poller.addReader(self, self._sock)
                 self.fire(ready(self, (self.host, self.port)))
             else:
                 try:
                     self._poller = Poller().register(self)
                 except EnvironmentError as err:
                     self.fire(error(err))
                 else:
                     self._poller.addReader(self, self._sock)
                     self.fire(ready(self, (self.host, self.port)))
예제 #4
0
 def _on_started(self, event, component):
     if self._poller is None:
         self._poller = Poller().register(self)
         self.fire(ready(self))
         event.stop()