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]
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]
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
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