xref: /aosp_15_r20/external/pytorch/aten/src/ATen/detail/MTIAHooksInterface.cpp (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #include <ATen/detail/MTIAHooksInterface.h>
2 
3 #include <c10/util/CallOnce.h>
4 
5 #include <memory>
6 
7 namespace at {
8 namespace detail {
9 
getMTIAHooks()10 const MTIAHooksInterface& getMTIAHooks() {
11   static std::unique_ptr<MTIAHooksInterface> mtia_hooks = nullptr;
12   static c10::once_flag once;
13   c10::call_once(once, [] {
14     mtia_hooks = MTIAHooksRegistry()->Create("MTIAHooks", MTIAHooksArgs{});
15     if (!mtia_hooks) {
16       mtia_hooks = std::make_unique<MTIAHooksInterface>();
17     }
18   });
19   return *mtia_hooks;
20 }
21 
isMTIAHooksBuilt()22 bool isMTIAHooksBuilt() {
23   return MTIAHooksRegistry()->Has("MTIAHooks");
24 }
25 
26 } // namespace detail
27 
28 C10_DEFINE_REGISTRY(MTIAHooksRegistry, MTIAHooksInterface, MTIAHooksArgs)
29 
30 } // namespace at
31