[Python-Dev] Timeout for PEP 550
[Python-Dev] Timeout for PEP 550 / Execution Context discussion
Ethan Furman ethan at stoneleaf.usMon Oct 16 22:29:44 EDT 2017
- Previous message (by thread): [Python-Dev] Timeout for PEP 550 / Execution Context discussion
- Next message (by thread): [Python-Dev] Timeout for PEP 550 / Execution Context discussion
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 10/16/2017 05:29 PM, Nathaniel Smith wrote: > On Mon, Oct 16, 2017 at 11:12 AM, Ethan Furman wrote: >> What would be really nice is to have attribute access like thread locals. >> Instead of working with individual ContextVars you grab the LocalContext and >> access the vars as attributes. I don't recall reading in the PEP why this >> is a bad idea. > > You're mixing up levels -- the way threading.local objects work is > that there's one big dict that's hidden inside the interpreter (in the > ThreadState), and it holds a separate little dict for each > threading.local. The dict holding ContextVars is similar to the big > dict; a threading.local itself is like a ContextVar that holds a dict. > (And the reason it's this way is that it's easy to build either > version on top of the other, and we did some survey of threading.local > usage and the ContextVar style usage was simpler in the majority of > cases.) > > For threading.local there's no way to get at the big dict at all from > Python; it's hidden inside the C APIs and threading internals. I'm > guessing you've never missed this :-). For ContextVars we can't hide > it that much, because async frameworks need to be able to swap the > current dict when switching tasks and clone it when starting a new > task, but those are the only absolutely necessary operations. Ah, thank you. -- ~Ethan~
- Previous message (by thread): [Python-Dev] Timeout for PEP 550 / Execution Context discussion
- Next message (by thread): [Python-Dev] Timeout for PEP 550 / Execution Context discussion
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list