def calculator(self, *args, **kwargs): thread = threading.current_thread() print("executing in %s" % thread) print("computing...") yield from netius.sleep(3.0) print("finished computing...") return sum(args)
def handler(self, future): thread = threading.current_thread() print("executing in %s" % thread) message = "hello world\n" timeout = yield from netius.sleep(3.0) message += "timeout: %.2f\n" % timeout result = yield from self.calculator(2, 2) message += "result: %d\n" % result future.set_result(message)
def test_sleep(self): for value in netius.sleep(1.0): yield value future = value timeout = future.result() self.assertEqual(timeout, 1.0) self.assertEqual(isinstance(future, netius.Future), True) self.assertEqual(future.done(), True)
def read_file(self, future, file_path, chunk = 65536, delay = 0): count = 0 file = open(file_path, "rb") try: while True: data = file.read(chunk) if not data: break count += len(data) if delay: yield from netius.sleep(delay) yield data finally: file.close() future.set_result(None) return count
def _compute(x, y): print("Compute %s + %s ..." % (x, y)) yield from netius.sleep(1.0) return x + y
def compute(future, x, y): print("Compute %s + %s ..." % (x, y)) for value in netius.sleep(1.0): yield value future.set_result(x + y)