Exemplo n.º 1
0
 def _waitForCheck(self, cond, res_check, timeout):
     deadline = time.time() + timeout
     res = None
     while time.time() < deadline:
         Interrupt.checkInterrupt()
         res = cond()
         if res_check(res):
             return [True, res]
         time.sleep(0.03)
     return [False, res]
Exemplo n.º 2
0
 def _waitForCheck(self, cond, res_check, timeout):
     deadline = time.time() + timeout
     res = None
     while time.time() < deadline:
         Interrupt.checkInterrupt()
         res = cond()
         if res_check(res):
             return [True, res]
         time.sleep(0.03)
     return [False, res]
Exemplo n.º 3
0
    def waitForSub(self, name, root, accept=None, timeout=10, remove=True):
        client = self.getClient()

        def default_accept(dat):
            return True

        if accept is None:
            accept = default_accept

        deadline = time.time() + timeout
        while time.time() < deadline:
            Interrupt.checkInterrupt()
            sub = self.getSubscription(name, root=root, remove=False)
            if sub is not None:
                res = accept(sub)
                if res:
                    return self.getSubscription(name, root=root, remove=remove)
            # wait for more data
            client.setTimeout(deadline - time.time())
            client.receive()

        return None
Exemplo n.º 4
0
    def waitForSub(self, name, root, accept=None, timeout=10, remove=True):
        client = self.getClient()

        def default_accept(dat):
            return True

        if accept is None:
            accept = default_accept

        deadline = time.time() + timeout
        while time.time() < deadline:
            Interrupt.checkInterrupt()
            sub = self.getSubscription(name, root=root, remove=False)
            if sub is not None:
                res = accept(sub)
                if res:
                    return self.getSubscription(name, root=root, remove=remove)
            # wait for more data
            client.setTimeout(deadline - time.time())
            client.receive()

        return None