File tree Expand file tree Collapse file tree 2 files changed +7
-2
lines changed Expand file tree Collapse file tree 2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -91,10 +91,15 @@ endif()
9191option (PYBIND11_INSTALL "Install pybind11 header files?" ${PYBIND11_MASTER_PROJECT} )
9292option (PYBIND11_TEST "Build pybind11 test suite?" ${PYBIND11_MASTER_PROJECT} )
9393option (PYBIND11_NOPYTHON "Disable search for Python" OFF )
94+ option (PYBIND11_USE_PYPY_GIL "Force use of PYPY GIL acquire/release logic in gil.h" OFF )
9495set (PYBIND11_INTERNALS_VERSION
9596 ""
9697 CACHE STRING "Override the ABI version, may be used to enable the unstable ABI." )
9798
99+ if (PYBIND11_USE_PYPY_GIL)
100+ add_compile_definitions (USE_PYPY_GIL)
101+ endif ()
102+
98103cmake_dependent_option(
99104 USE_PYTHON_INCLUDE_DIR
100105 "Install pybind11 headers in Python include directory instead of default installation prefix"
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ PyThreadState *get_thread_state_unchecked();
2121
2222PYBIND11_NAMESPACE_END (detail)
2323
24- #if defined(WITH_THREAD) && !defined(PYPY_VERSION)
24+ #if defined(WITH_THREAD) && !defined(PYPY_VERSION) && !defined(USE_PYPY_GIL)
2525
2626/* The functions below essentially reproduce the PyGILState_* API using a RAII
2727 * pattern, but there are a few important differences:
@@ -178,7 +178,7 @@ class gil_scoped_release {
178178 bool disassoc;
179179 bool active = true ;
180180};
181- #elif defined(PYPY_VERSION)
181+ #elif defined(PYPY_VERSION) || defined(USE_PYPY_GIL)
182182class gil_scoped_acquire {
183183 PyGILState_STATE state;
184184
You can’t perform that action at this time.
0 commit comments