[Python-Dev] PEP 492 quibble and request (original) (raw)
Ron Adam ron3200 at gmail.com
Thu May 7 15:50:08 CEST 2015
- Previous message (by thread): [Python-Dev] PEP 492 quibble and request
- Next message (by thread): [Python-Dev] PEP 492 quibble and request
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 05/03/2015 03:03 PM, Arnaud Delobelle wrote:
On 3 May 2015 at 02:22, Greg Ewing<greg.ewing at canterbury.ac.nz> wrote:
>Guido van Rossum wrote:
>> >>On Sat, May 2, 2015 at 1:18 PM, Arnaud Delobelle <arnodel at gmail.com_ _>><mailto:arnodel at gmail.com>> wrote: >> >> Does this mean that >> somehow "await x" guarantees that the coroutine will suspend at least >> once? > > >No. First, it's possible for x to finish without yielding. >But even if x yields, there is no guarantee that the >scheduler will run something else -- it might just >resume the same task, even if there is another one that >could run. It's up to the scheduler whether it >implements any kind of "fair" scheduling policy. That's what I understood but the example ('yielding()') provided by Ron Adam seemed to imply otherwise, so I wanted to clarify.
Guido is correct of course. In examples I've used before with trampolines, a co-routine would be yielded back to the event loop, and if there was any other co-routines in the event loop they would execute first. I'm not sure if async and await can be used with a trampoline type scheduler.
A scheduler might use a timer or priority based system system to schedule events. So yes, it's up to the scheduler and the pep492 is intended to be flexible as to what scheduler is used.
Cheers, Ron
- Previous message (by thread): [Python-Dev] PEP 492 quibble and request
- Next message (by thread): [Python-Dev] PEP 492 quibble and request
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]