Bug report
Bug description:
#include <Python.h> static int examplemodule_exec(PyObject *module) { // Yes I know there's no error checking... PyObject *gil_enabled = PySys_GetObject("_is_gil_enabled"); PyObject *result = PyObject_CallNoArgs(gil_enabled); printf("gil enabled: "); PyObject_Print(result, stdout, 0); printf("\n"); Py_DECREF(result); return 0; } static PyModuleDef_Slot examplemodule_slots[] = { {Py_mod_name, "examplemodule"}, {Py_mod_gil, Py_MOD_GIL_USED}, {Py_mod_exec, (void*)examplemodule_exec}, {0} }; PyMODEXPORT_FUNC PyModExport_examplemodule(void) { return examplemodule_slots; }
I believe that the code above should print "gil enabled: True". However when I run it on Python 3.15.0a2 freethreading it prints "gil enabled: False".
I don't believe this is an issue in the old style PyInit_ initialization.
CPython versions tested on:
3.15
Operating systems tested on:
Linux