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()10const 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()22bool isMTIAHooksBuilt() { 23 return MTIAHooksRegistry()->Has("MTIAHooks"); 24 } 25 26 } // namespace detail 27 28 C10_DEFINE_REGISTRY(MTIAHooksRegistry, MTIAHooksInterface, MTIAHooksArgs) 29 30 } // namespace at 31