docs: extend PYBIND11_MODULE documentation, mention mod_gil_not_used (#5250)

This follows up on PR 5148, which introduced support for free-threaded CPython.
This commit is contained in:
Ralf Gommers 2024-07-18 08:26:45 +02:00 committed by GitHub
parent 43de8014f9
commit dbf848aff7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -462,6 +462,22 @@ PYBIND11_WARNING_POP
return "Hello, World!";
});
}
The third macro argument is optional (available since 2.13.0), and can be used to
mark the extension module as safe to run without the GIL under a free-threaded CPython
interpreter. Passing this argument has no effect on other interpreters.
.. code-block:: cpp
PYBIND11_MODULE(example, m, py::mod_gil_not_used()) {
m.doc() = "pybind11 example module safe to run without the GIL";
// Add bindings here
m.def("foo", []() {
return "Hello, Free-threaded World!";
});
}
\endrst */
#define PYBIND11_MODULE(name, variable, ...) \
static ::pybind11::module_::module_def PYBIND11_CONCAT(pybind11_module_def_, name) \