Advertisement
Guest User

asyncio generators

a guest
May 31st, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.83 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import asyncio
  5.  
  6. loop = asyncio.get_event_loop()
  7.  
  8. class Result:
  9.     def __init__(self):
  10.         self.result = None
  11.         self.event = asyncio.Event()
  12.         self.is_stopped = False
  13.        
  14.  
  15. async def createGenerator(res):
  16.     mylist = range(3)
  17.     for i in mylist:
  18.         await asyncio.sleep(1)
  19.         res.result = i*i
  20.         res.event.set()
  21.    
  22.     res.is_stopped = True
  23.     res.event.set()
  24.    
  25.    
  26. async def start():
  27.     res = Result()
  28.    
  29.     loop.create_task(createGenerator(res))
  30.    
  31.     while True:
  32.         await res.event.wait()
  33.         print (res.result)
  34.         if res.is_stopped:
  35.             break
  36.            
  37.         res.event.clear()
  38.  
  39. try:
  40.     loop.run_until_complete(start())
  41.    
  42. except KeyboardInterrupt:
  43.     loop.stop()
  44.     pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement