[iOS] fix crash when multithread call initSDKEnvironment
diff --git a/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m b/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
index 993e427..19ab11a 100644
--- a/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
+++ b/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
@@ -271,23 +271,22 @@
+ (void)initSDKEnvironment:(NSString *)script
{
- WX_MONITOR_PERF_START(WXPTInitalize)
- WX_MONITOR_PERF_START(WXPTInitalizeSync)
-
- if (!script || script.length <= 0) {
- NSMutableString *errMsg = [NSMutableString stringWithFormat:@"[WX_KEY_EXCEPTION_SDK_INIT_JSFM_INIT_FAILED] script don't exist:%@",script];
- [WXExceptionUtils commitCriticalExceptionRT:@"WX_KEY_EXCEPTION_SDK_INIT" errCode:[NSString stringWithFormat:@"%d", WX_KEY_EXCEPTION_SDK_INIT] function:@"initSDKEnvironment" exception:errMsg extParams:nil];
- WX_MONITOR_FAIL(WXMTJSFramework, WX_ERR_JSFRAMEWORK_LOAD, errMsg);
- return;
- }
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
+ WX_MONITOR_PERF_START(WXPTInitalize)
+ WX_MONITOR_PERF_START(WXPTInitalizeSync)
+
+ if (!script || script.length <= 0) {
+ NSMutableString *errMsg = [NSMutableString stringWithFormat:@"[WX_KEY_EXCEPTION_SDK_INIT_JSFM_INIT_FAILED] script don't exist:%@",script];
+ [WXExceptionUtils commitCriticalExceptionRT:@"WX_KEY_EXCEPTION_SDK_INIT" errCode:[NSString stringWithFormat:@"%d", WX_KEY_EXCEPTION_SDK_INIT] function:@"initSDKEnvironment" exception:errMsg extParams:nil];
+ WX_MONITOR_FAIL(WXMTJSFramework, WX_ERR_JSFRAMEWORK_LOAD, errMsg);
+ return;
+ }
[self registerDefaults];
[[WXSDKManager bridgeMgr] executeJsFramework:script];
+
+ WX_MONITOR_PERF_END(WXPTInitalizeSync)
});
-
- WX_MONITOR_PERF_END(WXPTInitalizeSync)
-
}
+ (void)registerDefaults