You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

future.py 408 B

12345678910111213141516171819
  1. import threading
  2. class Future:
  3. def __init__(self, ack=True):
  4. self.ready = threading.Event()
  5. self.ack = threading.Event() if ack else None
  6. def set(self, value):
  7. self.value = value
  8. self.ready.set()
  9. if self.ack:
  10. self.ack.wait()
  11. def get(self):
  12. self.ready.wait()
  13. if self.ack:
  14. self.ack.set()
  15. return self.value