[Python-Dev] Timeout for PEP 550 / Execution Context discussion

Guido van Rossum guido at python.org
Mon Oct 16 01:10:29 EDT 2017


On Sun, Oct 15, 2017 at 8:17 PM, Nathaniel Smith <njs at pobox.com> wrote:

> On Sun, Oct 15, 2017 at 6:33 PM, Yury Selivanov <yselivanov.ml at gmail.com>
> wrote:
> > Stage 1. A new execution context PEP to solve the problem *just for
> > async code*.  The PEP will target Python 3.7 and completely ignore
> > synchronous generators and asynchronous generators.  It will be based
> > on PEP 550 v1 (no chained lookups, immutable mapping or CoW as an
> > optimization) and borrow some good API decisions from PEP 550 v3+
> > (contextvars module, ContextVar class).  The API (and C-API) will be
> > designed to be future proof and ultimately allow transition to the
> > stage 2.
>
> If you want to ignore generators/async generators, then I think you
> don't even want PEP 550 v1, you just want something like a
> {set,get}_context_state API that lets you access the ThreadState's
> context dict (or rather, an opaque ContextState object that holds the
> context dict), and then task schedulers can call them at appropriate
> moments.
>

Yes, that's what I meant by "ignoring generators". And I'd like there to be
a "current context" that's a per-thread MutableMapping with ContextVar
keys. Maybe there's not much more to it apart from naming the APIs for
getting and setting it? To be clear, I am fine with this being a specific
subtype of MutableMapping. But I don't see much benefit in making it more
abstract than that.

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20171015/e367748c/attachment.html>


More information about the Python-Dev mailing list