File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -84,12 +84,13 @@ inline PyObject *make_object_base_type(PyTypeObject *metaclass);
84
84
// On CPython < 3.4 and on PyPy, `PyThread_set_key_value` strangely does not set
85
85
// the value if it has already been set. Instead, it must first be deleted and
86
86
// then set again.
87
+ inline void tls_replace_value (PYBIND11_TLS_KEY_REF key, void *value) {
88
+ PyThread_delete_key_value (key);
89
+ PyThread_set_key_value (key, value);
90
+ }
87
91
# define PYBIND11_TLS_DELETE_VALUE (key ) PyThread_delete_key_value(key)
88
92
# define PYBIND11_TLS_REPLACE_VALUE (key, value ) \
89
- do { \
90
- PyThread_delete_key_value ((key)); \
91
- PyThread_set_key_value ((key), (value)); \
92
- } while (false )
93
+ ::pybind11::detail::tls_replace_value ((key), (value))
93
94
# else
94
95
# define PYBIND11_TLS_DELETE_VALUE (key ) PyThread_set_key_value((key), nullptr )
95
96
# define PYBIND11_TLS_REPLACE_VALUE (key, value ) PyThread_set_key_value((key), (value))
You can’t perform that action at this time.
0 commit comments