python - Is there a difference between 'await future' and 'await asyncio.wait_for(future, None)'? -
with python 3.5 or later, there difference between directly applying await future or task, , wrapping asyncio.wait_for?  documentation unclear on when appropriate use wait_for , i'm wondering if it's vestige of old generator-based library.  test program below appears show no difference doesn't prove anything.
import asyncio  async def task_one():     await asyncio.sleep(0.1)     return 1  async def task_two():     await asyncio.sleep(0.1)     return 2  async def test(loop):     t1 = loop.create_task(task_one())     t2 = loop.create_task(task_two())      print(repr(await t1))     print(repr(await asyncio.wait_for(t2, none)))  def main():     loop = asyncio.get_event_loop()     try:         loop.run_until_complete(test(loop))     finally:         loop.close()  main()      
unfortunately python documentation little bit unclear here, if have sources pretty obvious:
in contrary await coroutine asyncio.wait_for() allows wait limited time until future/task completes. if not complete within time concurrent.futures.timeouterror raised. 
this timeout can specified second parameter. in sample code timeout parameter none results in exactly same functionality directly applying await/yield from.
Comments
Post a Comment