File tree 2 files changed +7
-2
lines changed
2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -91,10 +91,15 @@ endif()
91
91
option (PYBIND11_INSTALL "Install pybind11 header files?" ${PYBIND11_MASTER_PROJECT} )
92
92
option (PYBIND11_TEST "Build pybind11 test suite?" ${PYBIND11_MASTER_PROJECT} )
93
93
option (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 )
94
95
set (PYBIND11_INTERNALS_VERSION
95
96
""
96
97
CACHE STRING "Override the ABI version, may be used to enable the unstable ABI." )
97
98
99
+ if (PYBIND11_USE_PYPY_GIL)
100
+ add_compile_definitions (USE_PYPY_GIL)
101
+ endif ()
102
+
98
103
cmake_dependent_option(
99
104
USE_PYTHON_INCLUDE_DIR
100
105
"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();
21
21
22
22
PYBIND11_NAMESPACE_END (detail)
23
23
24
- #if defined(WITH_THREAD) && !defined(PYPY_VERSION)
24
+ #if defined(WITH_THREAD) && !defined(PYPY_VERSION) && !defined(USE_PYPY_GIL)
25
25
26
26
/* The functions below essentially reproduce the PyGILState_* API using a RAII
27
27
* pattern, but there are a few important differences:
@@ -178,7 +178,7 @@ class gil_scoped_release {
178
178
bool disassoc;
179
179
bool active = true ;
180
180
};
181
- #elif defined(PYPY_VERSION)
181
+ #elif defined(PYPY_VERSION) || defined(USE_PYPY_GIL)
182
182
class gil_scoped_acquire {
183
183
PyGILState_STATE state;
184
184
You can’t perform that action at this time.
0 commit comments