[Python-Dev] Adding a threadlocal to the Python interpreter (original) (raw)

Daniel Holth dholth at gmail.com
Thu May 26 22:41:38 EDT 2016


Thank you. I started my patch http://bugs.python.org/issue27134 to allow Python code to set a flag causing the evil str(b'bytes') to raise an exception. I wasn't sure exactly which module to put it in, so it's in _string. Please let me know the best place to put the feature and what I should polish to get it in.

Thanks,

Daniel Holth

On Thu, May 19, 2016 at 6:34 AM Christian Heimes <christian at python.org> wrote:

On 2016-05-19 04:30, Nick Coghlan wrote: > On 18 May 2016 at 23:20, Daniel Holth <dholth at gmail.com> wrote: >> I would like to take another stab at adding a threadlocal "str(bytes) raises >> an exception" to the Python interpreter, but I had a very hard time >> understanding both how to add a threadlocal value to either the interpreter >> state or the threadlocal dict that is part of that state, and then how to >> access the same value from both Python and CPython code. The structs were >> there but it was just hard to understand. Can someone explain it to me? > > Christian covered the C aspects of the API, while the general purpose > Python aspects live in the threading module. > > However, the Python level thread-local API doesn't provide direct > access to the thread state dict. Instead, it provides access to > subdicts stored under per-object keys in that dict, keyed as > "thread.local.":

In case you wonder about subdicts, they are required to provide multiple thread local objects. Each thread local instance has its own key in each thread state dict. The approach enables thread local to have independent storage objects. Christian -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160527/de3f854f/attachment.html>



More information about the Python-Dev mailing list