From d22a121cb3841e90a4b767f1cd69709aaf089ebf Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Fri, 31 Jul 2020 12:45:48 -0700 Subject: [PATCH] Implement asyncMethodCallFail Summary: The async NativeModule method call event can fail if something goes wrong when we're about do dispatch the method call. Changelog: [Internal] Reviewed By: ejanzer Differential Revision: D22609410 fbshipit-source-id: 699eeb78edfbefa85e417fd82318ae8e4f6f7d90 --- .../reactperflogger/BridgeNativeModulePerfLogger.cpp | 7 +++++++ .../reactperflogger/BridgeNativeModulePerfLogger.h | 1 + .../reactperflogger/NativeModulePerfLogger.h | 3 +++ ReactCommon/turbomodule/core/TurboModulePerfLogger.cpp | 7 +++++++ ReactCommon/turbomodule/core/TurboModulePerfLogger.h | 1 + 5 files changed, 19 insertions(+) diff --git a/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.cpp b/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.cpp index 70582331c79..9192889c1d4 100644 --- a/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.cpp +++ b/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.cpp @@ -249,6 +249,13 @@ void asyncMethodCallEnd(const char *moduleName, const char *methodName) { } } +void asyncMethodCallFail(const char *moduleName, const char *methodName) { + NativeModulePerfLogger *logger = g_perfLogger.get(); + if (logger != nullptr) { + logger->asyncMethodCallFail(moduleName, methodName); + } +} + void asyncMethodCallBatchPreprocessStart() { NativeModulePerfLogger *logger = g_perfLogger.get(); if (logger != nullptr) { diff --git a/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.h b/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.h index e82257abf53..c2fa2455011 100644 --- a/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.h +++ b/ReactCommon/reactperflogger/reactperflogger/BridgeNativeModulePerfLogger.h @@ -76,6 +76,7 @@ void asyncMethodCallArgConversionEnd( const char *methodName); void asyncMethodCallDispatch(const char *moduleName, const char *methodName); void asyncMethodCallEnd(const char *moduleName, const char *methodName); +void asyncMethodCallFail(const char *moduleName, const char *methodName); /** * Pre-processing async method call batch diff --git a/ReactCommon/reactperflogger/reactperflogger/NativeModulePerfLogger.h b/ReactCommon/reactperflogger/reactperflogger/NativeModulePerfLogger.h index f4e9591e0c4..54def97671c 100644 --- a/ReactCommon/reactperflogger/reactperflogger/NativeModulePerfLogger.h +++ b/ReactCommon/reactperflogger/reactperflogger/NativeModulePerfLogger.h @@ -124,6 +124,9 @@ class NativeModulePerfLogger { virtual void asyncMethodCallEnd( const char *moduleName, const char *methodName) = 0; + virtual void asyncMethodCallFail( + const char *moduleName, + const char *methodName) = 0; /** * In the NativeModule system, we batch async NativeModule method calls. diff --git a/ReactCommon/turbomodule/core/TurboModulePerfLogger.cpp b/ReactCommon/turbomodule/core/TurboModulePerfLogger.cpp index 5d145e1b869..f69701a26c0 100644 --- a/ReactCommon/turbomodule/core/TurboModulePerfLogger.cpp +++ b/ReactCommon/turbomodule/core/TurboModulePerfLogger.cpp @@ -249,6 +249,13 @@ void asyncMethodCallEnd(const char *moduleName, const char *methodName) { } } +void asyncMethodCallFail(const char *moduleName, const char *methodName) { + NativeModulePerfLogger *logger = g_perfLogger.get(); + if (logger != nullptr) { + logger->asyncMethodCallFail(moduleName, methodName); + } +} + void asyncMethodCallBatchPreprocessStart() { NativeModulePerfLogger *logger = g_perfLogger.get(); if (logger != nullptr) { diff --git a/ReactCommon/turbomodule/core/TurboModulePerfLogger.h b/ReactCommon/turbomodule/core/TurboModulePerfLogger.h index fe3a8ab30d4..56abad502f5 100644 --- a/ReactCommon/turbomodule/core/TurboModulePerfLogger.h +++ b/ReactCommon/turbomodule/core/TurboModulePerfLogger.h @@ -76,6 +76,7 @@ void asyncMethodCallArgConversionEnd( const char *methodName); void asyncMethodCallDispatch(const char *moduleName, const char *methodName); void asyncMethodCallEnd(const char *moduleName, const char *methodName); +void asyncMethodCallFail(const char *moduleName, const char *methodName); /** * Pre-processing async method call batch