pytorch
08fb648f - Add mechanism to turn any RAII guard into a Python Context Manager (#102037)

Commit
1 year ago
Add mechanism to turn any RAII guard into a Python Context Manager (#102037) This PR: - adds a mechanism to turn any RAII guard into a Python Context Manager - turns ExcludeDispatchKeyGuard into a context manager, and purges usages of the older torch._C.ExcludeDispatchKeyGuard from the codebase. The mechanism is that given a RAII guard, we construct a context manager object that holds an optional guard. When we enter the context manager we populate the guard, when we exit we reset it. We don't delete torch._C.ExcludeDispatchKeyGuard for BC reasons (people are using it in fbcode). If this code actually sticks (it is using C++17 and that worries me a bit), then I'll apply the change to other RAII guards we have, otherwise, we can write our own std::apply. Pull Request resolved: https://github.com/pytorch/pytorch/pull/102037 Approved by: https://github.com/ezyang, https://github.com/bdhirsh
Author
Committer
Parents
Loading