1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#include <c10/util/DeadlockDetection.h>
#include <cstdlib>
namespace c10 {
namespace impl {
namespace {
PythonGILHooks* python_gil_hooks = nullptr;
bool disable_detection() {
return std::getenv("TORCH_DISABLE_DEADLOCK_DETECTION") != nullptr;
}
} // namespace
bool check_python_gil() {
if (!python_gil_hooks) {
return false;
}
return python_gil_hooks->check_python_gil();
}
void SetPythonGILHooks(PythonGILHooks* hooks) {
if (disable_detection()) {
return;
}
TORCH_INTERNAL_ASSERT(!hooks || !python_gil_hooks);
python_gil_hooks = hooks;
}
} // namespace impl
} // namespace c10
|