On Wed, Apr 22, 2015 at 5:12 PM, Greg Ewing <greg.ew...@canterbury.ac.nz> wrote:
> Guido van Rossum wrote: > >> On Wed, Apr 22, > OTOH I'm still struggling with what you have to do to >> wrap a coroutine in a Task, the way its done in asyncio by the Task() >> constructor, the loop.create_task() method, and the async() function >> > > That's easy. You can always use costart() to adapt a cofunction > for use with something expecting a generator-based coroutine, > e.g. > > codef my_task_func(arg): > ... > > my_task = Task(costart(my_task_func, arg)) > > If you're willing to make changes, Task() et al could be made to > recognise cofunctions and apply costart() where needed. Hm, that feels backwards incompatible (since currently I can write Task(my_task_func(arg)) and also a step backwards in elegance (having to pass the args separately). OTOH the benefit is that it's much harder to accidentally forget to wait for a coroutine. And maybe the backward compatibility issue is not really a problem because you have to opt in by using codef or async def. So I'm still torn. :-) Somebody would need to take a mature asyncio app and see how often this is used (i.e. how many place would require adding costart() as in the above example). -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com