Message194610
| Author |
eli.bendersky |
| Recipients |
Arfrever, Robin.Schreiber, asvetlov, effbot, eli.bendersky, pitrou |
| Date |
2013年08月07日.13:47:16 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<CAF-Rda9PFepvu4VY1Ux_xZnbyhzevoMAoqoGfv-LSU_jQphq2g@mail.gmail.com> |
| In-reply-to |
<1404971900.48608507.1375882110112.JavaMail.root@zimbra10-e2.priv.proxad.net> |
| Content |
On Wed, Aug 7, 2013 at 6:28 AM, Antoine Pitrou <report@bugs.python.org>wrote:
>
> Antoine Pitrou added the comment:
>
> > First, I think it omits expat_capi from the state. Is that
> > intentional?
>
> What would it do in the state? There's nothing to release.
>
That's true, but I thought one of the goals of PEP 3121 is to separate
states between sub-interpreters. So that one can't corrupt another. I'm not
sure how much it matters in practice in this case of the pyexpat capsule;
need to look into it more.
> > Second, I'm not sure if this approach is fully aligned with PEP 3121.
> > A global, shared state is still used. Instead of actually having a
> > different module state per subinterpreter, this patch will have
> > shared state.
>
> I don't understand what you are talking about. Perhaps you haven't looked
> what PyState_FindModule() does?
>
I did not look at the implementation yet. But the documentation says:
"""Returns the module object that was created from *def* for the current
interpreter. This method requires that the module object has been attached
to the interpreter state with
PyState_AddModule()<http://docs.python.org/dev/c-api/module.html?highlight=pymoduledef_base#PyState_AddModule>beforehand.
In case the corresponding module object is not found or has not
been attached to the interpreter state yet, it returns NULL."""
I don't see a call to PyState_AddModule. What am I missing? |
|