7 #ifndef PXR_BASE_TF_PY_LOCK_H
8 #define PXR_BASE_TF_PY_LOCK_H
12 #ifdef PXR_PYTHON_SUPPORT_ENABLED
122 TF_API void BeginAllowThreads();
126 TF_API void EndAllowThreads();
130 friend struct TfPyEnsureGILUnlockedObj;
131 enum _UnlockedTag { _ConstructUnlocked };
132 explicit TfPyLock(_UnlockedTag);
134 PyGILState_STATE _gilState;
135 PyThreadState *_savedState;
137 bool _allowingThreads:1;
141 struct TfPyEnsureGILUnlockedObj
145 TF_API TfPyEnsureGILUnlockedObj();
173 #define TF_PY_ALLOW_THREADS_IN_SCOPE() \
174 TfPyEnsureGILUnlockedObj __py_lock_allow_threads__
181 #define TF_PY_ALLOW_THREADS_IN_SCOPE()
183 #endif // PXR_PYTHON_SUPPORT_ENABLED
185 #endif // PXR_BASE_TF_PY_LOCK_H
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE