[Python-Dev] Python initialization and embedded Python (original) (raw)
Victor Stinner victor.stinner at gmail.com
Wed Nov 22 04:38:32 EST 2017
- Previous message (by thread): [Python-Dev] Python initialization and embedded Python
- Next message (by thread): [Python-Dev] Python initialization and embedded Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2017-11-21 16:57 GMT+01:00 Eric Snow <ericsnowcurrently at gmail.com>:
I understand that moving global variables to PyRuntime helps to clarify how these variables are initialized and then finalized, but memory allocators are a complex corner case. Agreed. I spent a large portion of my time getting the allocators right when working on the original PyRuntime patch. It's tricky code.
Oh, I forgot to notify you: when I worked on Py_Main(), I got crashes because PyMem_RawMalloc() wasn't usable before calling Py_Initialize(). This is what I call a regresion, and that's why I started this thread :-)
I fixed the issue by calling _PyRuntime_Initialize() as the very first function in main().
I also had to add _PyMem_GetDefaultRawAllocator() to get a deterministic memory allocator, rather than depending on the allocator set an application embedding Python, we must be sure that the same allocator is used to initialize and finalize Python.
Victor
- Previous message (by thread): [Python-Dev] Python initialization and embedded Python
- Next message (by thread): [Python-Dev] Python initialization and embedded Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]