mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
This PR is the beginning of attempts to wrap thread-unsafe getenv and set_env functions inside a RW mutex. Pull Request resolved: https://github.com/pytorch/pytorch/pull/119449 Approved by: https://github.com/malfet, https://github.com/albanD
30 lines
586 B
C++
30 lines
586 B
C++
#include <c10/util/DeadlockDetection.h>
|
|
#include <c10/util/env.h>
|
|
|
|
namespace c10::impl {
|
|
|
|
namespace {
|
|
PythonGILHooks* python_gil_hooks = nullptr;
|
|
|
|
bool disable_detection() {
|
|
return c10::utils::has_env("TORCH_DISABLE_DEADLOCK_DETECTION");
|
|
}
|
|
} // 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 c10::impl
|