https://github.com/python/cpython/commit/84ad264ce602fb263a46a4536377bdc830eea81e
commit: 84ad264ce602fb263a46a4536377bdc830eea81e
branch: main
author: Peter Bierma <[email protected]>
committer: corona10 <[email protected]>
date: 2024-09-06T08:53:47+09:00
summary:
gh-123275: Support `-Xgil=1` and `PYTHON_GIL=1` on non-free-threaded builds
(gh-123276)
files:
A
Misc/NEWS.d/next/Core_and_Builtins/2024-08-23-18-31-10.gh-issue-123275.DprIrj.rst
M Doc/using/cmdline.rst
M Python/initconfig.c
diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst
index 66f7d5fa38dbc9..6cf42b27718022 100644
--- a/Doc/using/cmdline.rst
+++ b/Doc/using/cmdline.rst
@@ -622,7 +622,7 @@ Miscellaneous options
.. versionadded:: 3.13
* :samp:`-X gil={0,1}` forces the GIL to be disabled or enabled,
- respectively. Only available in builds configured with
+ respectively. Setting to ``0`` is only available in builds configured with
:option:`--disable-gil`. See also :envvar:`PYTHON_GIL` and
:ref:`whatsnew313-free-threaded-cpython`.
@@ -1221,13 +1221,12 @@ conflict.
.. envvar:: PYTHON_GIL
If this variable is set to ``1``, the global interpreter lock (GIL) will be
- forced on. Setting it to ``0`` forces the GIL off.
+ forced on. Setting it to ``0`` forces the GIL off (needs Python configured
with
+ the :option:`--disable-gil` build option).
See also the :option:`-X gil <-X>` command-line option, which takes
precedence over this variable, and :ref:`whatsnew313-free-threaded-cpython`.
- Needs Python configured with the :option:`--disable-gil` build option.
-
.. versionadded:: 3.13
Debug-mode variables
diff --git
a/Misc/NEWS.d/next/Core_and_Builtins/2024-08-23-18-31-10.gh-issue-123275.DprIrj.rst
b/Misc/NEWS.d/next/Core_and_Builtins/2024-08-23-18-31-10.gh-issue-123275.DprIrj.rst
new file mode 100644
index 00000000000000..ab344a8ca40e47
--- /dev/null
+++
b/Misc/NEWS.d/next/Core_and_Builtins/2024-08-23-18-31-10.gh-issue-123275.DprIrj.rst
@@ -0,0 +1 @@
+Support :option:`-X gil=1 <-X>` and :envvar:`PYTHON_GIL=1 <PYTHON_GIL>` on
non-free-threaded builds.
diff --git a/Python/initconfig.c b/Python/initconfig.c
index 2e7623f0a54d3c..d93244f7f41084 100644
--- a/Python/initconfig.c
+++ b/Python/initconfig.c
@@ -1714,20 +1714,24 @@ config_wstr_to_int(const wchar_t *wstr, int *result)
static PyStatus
config_read_gil(PyConfig *config, size_t len, wchar_t first_char)
{
-#ifdef Py_GIL_DISABLED
if (len == 1 && first_char == L'0') {
+#ifdef Py_GIL_DISABLED
config->enable_gil = _PyConfig_GIL_DISABLE;
+#else
+ return _PyStatus_ERR("Disabling the GIL is not supported by this
build");
+#endif
}
else if (len == 1 && first_char == L'1') {
+#ifdef Py_GIL_DISABLED
config->enable_gil = _PyConfig_GIL_ENABLE;
+#else
+ return _PyStatus_OK();
+#endif
}
else {
return _PyStatus_ERR("PYTHON_GIL / -X gil must be \"0\" or \"1\"");
}
return _PyStatus_OK();
-#else
- return _PyStatus_ERR("PYTHON_GIL / -X gil are not supported by this
build");
-#endif
}
static PyStatus
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]