Skip to content

Instantly share code, notes, and snippets.

@povilasb
Last active June 24, 2016 21:47
Show Gist options
  • Save povilasb/4f8734792b10526c695ce1ac5a15e95f to your computer and use it in GitHub Desktop.
Save povilasb/4f8734792b10526c695ce1ac5a15e95f to your computer and use it in GitHub Desktop.
import asyncio
@asyncio.coroutine
def queue_loader(packet_queue):
for i in range(1, 4):
yield from packet_queue.put('item%s' % i)
yield from asyncio.sleep(1)
yield from packet_queue.put('DONE')
@asyncio.coroutine
def packet_printer(packet_queue):
while True:
item = yield from packet_queue.get()
if item == 'DONE':
ev_loop = asyncio.get_event_loop() # Gets global event loop!
ev_loop.stop()
break
print('Works: ', item)
event_loop = asyncio.get_event_loop()
packet_queue = asyncio.Queue()
tasks = [
event_loop.create_task(queue_loader(packet_queue)),
event_loop.create_task(packet_printer(packet_queue)),
]
asyncio.wait(tasks)
event_loop.run_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment