On 11/12/2015 6:38 AM, Chris Angelico wrote:
On Thu, Nov 12, 2015 at 9:15 PM, Terry Reedy <tjre...@udel.edu> wrote:
On 11/12/2015 2:37 AM, Chris Angelico wrote:

On Thu, Nov 12, 2015 at 5:43 PM, Christian Gollwitzer <aurio...@gmx.de>
wrote:

My understanding of async is that it creates an event loop. In which case
the loop has no chance to run within a block of code that computes
anything,
is that correct?


This is correct. At its simplest, asynchronous code is an abstraction
over the select() call,


True on Unix-derived systems, where 'select' includes the various
derivatives.  It is also an abstraction over the Windows completion calls,
which are quite different.  The latter is why one must generally use a
different event loop on Windows.  The point is that asyncio provides an
*abstraction* such that after choosing the event loop, the rest of one's
code is os-agnostic.

I've never done that kind of thing on Windows, so I'm not sure how it
works; it's still broadly based on I/O availability, right?

That is the general abstraction. But there was something in the design discussion about a difference between 'edge' versus 'level' triggering that made it a challenge to get something more detailed that covers both implementations.

ultimately, it comes down to "go back to the event loop so others can
run".


--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to