From 7f60cfcb81b101f1711586135090a49d5f8caf14 Mon Sep 17 00:00:00 2001 From: haowenwu Date: Thu, 1 Jul 2021 19:16:04 +0800 Subject: [PATCH] Fix: GLfps trigger the main thread checker in some case --- .../FPSTrace/Core/MTHFPSTrace.m | 16 ++++++++++++++-- .../xcschemes/MTHawkeyeDemo.xcscheme | 1 - 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/MTHawkeye/TimeConsumingPlugins/FPSTrace/Core/MTHFPSTrace.m b/MTHawkeye/TimeConsumingPlugins/FPSTrace/Core/MTHFPSTrace.m index f9a351e..4cfeeb3 100644 --- a/MTHawkeye/TimeConsumingPlugins/FPSTrace/Core/MTHFPSTrace.m +++ b/MTHawkeye/TimeConsumingPlugins/FPSTrace/Core/MTHFPSTrace.m @@ -269,7 +269,13 @@ - (MTHFPSGLRenderCounter *)getDynamicAttachGLESCounter:(id)target { counter = [[MTHFPSGLRenderCounter alloc] init]; counter.identifier = [NSString stringWithFormat:@"%p", target]; } - [target setValue:counter forKey:propertyName]; + if ([target isKindOfClass:[UIView class]] && ![NSThread isMainThread]) { + dispatch_async(dispatch_get_main_queue(), ^{ + [target setValue:counter forKey:propertyName]; + }); + } else { + [target setValue:counter forKey:propertyName]; + } return counter; } @@ -288,7 +294,13 @@ - (MTHFPSGLRenderCounter *)getDynamicAttachGLESCounter:(id)target { counter = [[MTHFPSGLRenderCounter alloc] init]; counter.identifier = [NSString stringWithFormat:@"%p", target]; - [target setValue:counter forKey:propertyName]; + if ([target isKindOfClass:[UIView class]] && ![NSThread isMainThread]) { + dispatch_async(dispatch_get_main_queue(), ^{ + [target setValue:counter forKey:propertyName]; + }); + } else { + [target setValue:counter forKey:propertyName]; + } return counter; } diff --git a/MTHawkeyeDemo/MTHawkeyeDemo.xcodeproj/xcshareddata/xcschemes/MTHawkeyeDemo.xcscheme b/MTHawkeyeDemo/MTHawkeyeDemo.xcodeproj/xcshareddata/xcschemes/MTHawkeyeDemo.xcscheme index 9f210db..8ee11c2 100644 --- a/MTHawkeyeDemo/MTHawkeyeDemo.xcodeproj/xcshareddata/xcschemes/MTHawkeyeDemo.xcscheme +++ b/MTHawkeyeDemo/MTHawkeyeDemo.xcodeproj/xcshareddata/xcschemes/MTHawkeyeDemo.xcscheme @@ -56,7 +56,6 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" enableASanStackUseAfterReturn = "YES" enableUBSanitizer = "YES" - disableMainThreadChecker = "YES" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO"