On 10/18/2017 10:50 AM, Yury Selivanov wrote:
On Wed, Oct 18, 2017 at 1:06 PM, Guido van Rossum <gu...@python.org> wrote:
On Tue, Oct 17, 2017 at 9:40 PM, Nick Coghlan <ncogh...@gmail.com> wrote:
[..]
By contrast, "contextvars.set_ctx" would need various wrappers to handle
correctly reverting the context change, and would hence be prone to "changed
the active context without changing it back" bugs (which can be especially
fun when you're dealing with a shared pool of worker threads or processes).


So let's have both.

The main reason why I don't like 'set_ctx()' is because it would make
it harder for us to adopt PEP 550-like design later in the future
(*if* we need that.)

PEP 550 is designed in such a way, that 'generator.send()' is the only
thing that can control the actual stack of LCs.  If users can call
'set_ctx' themselves, it means that it's no longer safe for
'generator.send()' to simply pop the topmost LC from the stack.

I don't see why this is a concern -- Python is a "consenting adults" language. If users decide to start mucking around with advanced behavior and something breaks, well, they own all the pieces! ;)

Unless it's extremely difficult to not seg-fault in such a situation I don't 
think this is a valid argument.

--
~Ethan~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to