mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 13:44:15 +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, https://github.com/eqy
31 lines
674 B
C++
31 lines
674 B
C++
#include <c10/util/DeadlockDetection.h>
|
|
#include <c10/util/env.h>
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
using namespace ::testing;
|
|
using namespace c10::impl;
|
|
|
|
struct DummyPythonGILHooks : public PythonGILHooks {
|
|
bool check_python_gil() const override {
|
|
return true;
|
|
}
|
|
};
|
|
|
|
TEST(DeadlockDetection, basic) {
|
|
ASSERT_FALSE(check_python_gil());
|
|
DummyPythonGILHooks hooks;
|
|
SetPythonGILHooks(&hooks);
|
|
ASSERT_TRUE(check_python_gil());
|
|
SetPythonGILHooks(nullptr);
|
|
}
|
|
|
|
#ifndef _WIN32
|
|
TEST(DeadlockDetection, disable) {
|
|
c10::utils::set_env("TORCH_DISABLE_DEADLOCK_DETECTION", "1");
|
|
DummyPythonGILHooks hooks;
|
|
SetPythonGILHooks(&hooks);
|
|
SetPythonGILHooks(&hooks);
|
|
}
|
|
#endif
|