Re: [Async-sig] await question

2018-12-10 Thread Pradip Caulagi
Thanks Nathaniel, Dima!

On Mon, Dec 10, 2018 at 7:45 PM Nathaniel Smith  wrote:
>
> Yeah, 'await' makes it *possible* for the function you're calling to return 
> control to the event loop, but returning is still an explicit action that the 
> function has to take.
>
> In asyncio, the only operation that actually returns control to the event 
> loop is awaiting a Future object.
>
> In Trio, we make a documented guarantee that all the async functions in the 
> 'trio' namespace do in fact return control to the event loop (we call this a 
> "checkpoint").
>
> In both cases, the effect is the same: if a function never actually awaits a 
> Future/calls one of Trio's built-in async functions, either directly or 
> indirectly, then it won't return to the event loop.
>
> (And curio actually has a number of primitives that you call with await, and 
> that do in fact return to the event loop, but that still don't actually let 
> other tasks run, which I found pretty confusing. This is one of the major 
> reasons I stopped using curio.)
>
> -n
>
> On Mon, Dec 10, 2018, 04:32 Dima Tisnek >
>> No, in this case fib(1) is resolved instantly, thus it's caller is resolved 
>> instantly, thus...
>>
>> On Mon, 10 Dec 2018 at 9:28 PM, Pradip Caulagi  wrote:
>>>
>>> I was wondering if every use of 'await' should return the control to
>>> event loop? So in this example -
>>> https://gist.github.com/caulagi/3edea8cf734495f2592528a48f99e1d2 - I
>>> was hoping I would see 'A', 'B' to be mixed, but I see only 'A'
>>> followed by 'B'. What am I missing? I am using Python 3.7.1.
>>>
>>> How is my example different from
>>> https://docs.python.org/3.7/library/asyncio-task.html#asyncio.run?
>>>
>>> Thanks.
>>> ___
>>> Async-sig mailing list
>>> Async-sig@python.org
>>> https://mail.python.org/mailman/listinfo/async-sig
>>> Code of Conduct: https://www.python.org/psf/codeofconduct/
>>
>> ___
>> Async-sig mailing list
>> Async-sig@python.org
>> https://mail.python.org/mailman/listinfo/async-sig
>> Code of Conduct: https://www.python.org/psf/codeofconduct/
___
Async-sig mailing list
Async-sig@python.org
https://mail.python.org/mailman/listinfo/async-sig
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [Async-sig] await question

2018-12-10 Thread Dima Tisnek
While on the subject of referenced documentation, I find that it too
conflates concurrency with parallelism.

I don't have a good fix in mind though. Any takers?
___
Async-sig mailing list
Async-sig@python.org
https://mail.python.org/mailman/listinfo/async-sig
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [Async-sig] await question

2018-12-10 Thread Nathaniel Smith
Yeah, 'await' makes it *possible* for the function you're calling to return
control to the event loop, but returning is still an explicit action that
the function has to take.

In asyncio, the only operation that actually returns control to the event
loop is awaiting a Future object.

In Trio, we make a documented guarantee that all the async functions in the
'trio' namespace do in fact return control to the event loop (we call this
a "checkpoint").

In both cases, the effect is the same: if a function never actually awaits
a Future/calls one of Trio's built-in async functions, either directly or
indirectly, then it won't return to the event loop.

(And curio actually has a number of primitives that you call with await,
and that do in fact return to the event loop, but that still don't actually
let other tasks run, which I found pretty confusing. This is one of the
major reasons I stopped using curio.)

-n

On Mon, Dec 10, 2018, 04:32 Dima Tisnek  No, in this case fib(1) is resolved instantly, thus it's caller is
> resolved instantly, thus...
>
> On Mon, 10 Dec 2018 at 9:28 PM, Pradip Caulagi  wrote:
>
>> I was wondering if every use of 'await' should return the control to
>> event loop? So in this example -
>> https://gist.github.com/caulagi/3edea8cf734495f2592528a48f99e1d2 - I
>> was hoping I would see 'A', 'B' to be mixed, but I see only 'A'
>> followed by 'B'. What am I missing? I am using Python 3.7.1.
>>
>> How is my example different from
>> https://docs.python.org/3.7/library/asyncio-task.html#asyncio.run?
>>
>> Thanks.
>> ___
>> Async-sig mailing list
>> Async-sig@python.org
>> https://mail.python.org/mailman/listinfo/async-sig
>> Code of Conduct: https://www.python.org/psf/codeofconduct/
>>
> ___
> Async-sig mailing list
> Async-sig@python.org
> https://mail.python.org/mailman/listinfo/async-sig
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
___
Async-sig mailing list
Async-sig@python.org
https://mail.python.org/mailman/listinfo/async-sig
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [Async-sig] await question

2018-12-10 Thread Dima Tisnek
No, in this case fib(1) is resolved instantly, thus it's caller is resolved
instantly, thus...

On Mon, 10 Dec 2018 at 9:28 PM, Pradip Caulagi  wrote:

> I was wondering if every use of 'await' should return the control to
> event loop? So in this example -
> https://gist.github.com/caulagi/3edea8cf734495f2592528a48f99e1d2 - I
> was hoping I would see 'A', 'B' to be mixed, but I see only 'A'
> followed by 'B'. What am I missing? I am using Python 3.7.1.
>
> How is my example different from
> https://docs.python.org/3.7/library/asyncio-task.html#asyncio.run?
>
> Thanks.
> ___
> Async-sig mailing list
> Async-sig@python.org
> https://mail.python.org/mailman/listinfo/async-sig
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
___
Async-sig mailing list
Async-sig@python.org
https://mail.python.org/mailman/listinfo/async-sig
Code of Conduct: https://www.python.org/psf/codeofconduct/


[Async-sig] await question

2018-12-10 Thread Pradip Caulagi
I was wondering if every use of 'await' should return the control to
event loop? So in this example -
https://gist.github.com/caulagi/3edea8cf734495f2592528a48f99e1d2 - I
was hoping I would see 'A', 'B' to be mixed, but I see only 'A'
followed by 'B'. What am I missing? I am using Python 3.7.1.

How is my example different from
https://docs.python.org/3.7/library/asyncio-task.html#asyncio.run?

Thanks.
___
Async-sig mailing list
Async-sig@python.org
https://mail.python.org/mailman/listinfo/async-sig
Code of Conduct: https://www.python.org/psf/codeofconduct/