You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ac...@apache.org on 2018/03/05 10:11:21 UTC
incubator-weex git commit: * [iOS] try to make componentManager
dealloc at componentThread resolving multi thread problem
Repository: incubator-weex
Updated Branches:
refs/heads/master 6901b8354 -> 2fa5833ea
* [iOS] try to make componentManager dealloc at componentThread resolving multi thread problem
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2fa5833e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2fa5833e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2fa5833e
Branch: refs/heads/master
Commit: 2fa5833ea5e29f86cba6373b17fb3ec729af92a6
Parents: 6901b83
Author: acton393 <zh...@gmail.com>
Authored: Mon Mar 5 18:11:10 2018 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Mar 5 18:11:10 2018 +0800
----------------------------------------------------------------------
ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m | 11 +++++++++++
1 file changed, 11 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2fa5833e/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
index 0ca0311..e3aafcc 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
@@ -71,6 +71,7 @@ typedef enum : NSUInteger {
WXThreadSafeMutableDictionary *_moduleEventObservers;
BOOL _performanceCommit;
BOOL _needDestroy;
+ BOOL _syncDestroyComponentManager;
}
- (void)dealloc
@@ -78,6 +79,11 @@ typedef enum : NSUInteger {
[_moduleEventObservers removeAllObjects];
[self removeObservers];
[[NSNotificationCenter defaultCenter] removeObserver:self];
+ if (_syncDestroyComponentManager) {
+ WXPerformBlockSyncOnComponentThread(^{
+ _componentManager = nil;
+ });
+ }
}
- (instancetype)init
@@ -104,6 +110,11 @@ typedef enum : NSUInteger {
_moduleEventObservers = [WXThreadSafeMutableDictionary new];
_trackComponent = NO;
_performanceCommit = NO;
+
+ id configCenter = [WXSDKEngine handlerForProtocol:@protocol(WXConfigCenterProtocol)];
+ if ([configCenter respondsToSelector:@selector(configForKey:defaultValue:isDefault:)]) {
+ _syncDestroyComponentManager = [configCenter configForKey:@"iOS_weex_ext_config.syncDestroyComponentManager" defaultValue:@(YES) isDefault:NULL];
+ }
[self addObservers];
}