#include #include namespace torch::jit::mobile { CustomClassTracer::CustomClassTracer() { auto recorder_cb = [](const at::RecordFunction& fn) -> std::unique_ptr { std::string name = fn.name(); getLoadedClasses().withLock( [&name](CustomClassTracer::custom_classes_type& custom_classes) { custom_classes.insert(name); }); return nullptr; }; handle_ = at::addGlobalCallback(at::RecordFunctionCallback(recorder_cb) .scopes({at::RecordScope::CUSTOM_CLASS})); } c10::Synchronized& CustomClassTracer:: getLoadedClasses() { static c10::Synchronized loaded_classes; return loaded_classes; } } // namespace torch::jit::mobile