This is an automated email from the ASF dual-hosted git repository.

cxfeng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git


The following commit(s) were added to refs/heads/master by this push:
     new 78b887c  [iOS] Release jscontext in bridge thread to avoid main thread 
deadlock. (#1822)
78b887c is described below

commit 78b887ce8256d3e13c3cfa0294c286db05efccb9
Author: wqyfavor <wqyfa...@163.com>
AuthorDate: Tue Nov 27 10:57:42 2018 +0800

    [iOS] Release jscontext in bridge thread to avoid main thread deadlock. 
(#1822)
---
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm  | 4 ++++
 ios/sdk/WeexSDK/Sources/Manager/WXBridgeManager.h | 8 +++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm 
b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm
index de414bd..0e7a48d 100644
--- a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm
+++ b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.mm
@@ -79,6 +79,10 @@
 - (void)dealloc
 {
     _jsContext.instanceId = nil;
+    __block JSContext* theContext = _jsContext;
+    WXPerformBlockOnBridgeThread(^{
+        theContext = nil; // release the context in js thread to avoid 
main-thread deadlock
+    });
 }
 
 - (void)setJSContext:(JSContext *)context
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXBridgeManager.h 
b/ios/sdk/WeexSDK/Sources/Manager/WXBridgeManager.h
index 8728161..3422ab0 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXBridgeManager.h
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXBridgeManager.h
@@ -23,7 +23,13 @@
 @class WXBridgeMethod;
 @class WXSDKInstance;
 
-extern void WXPerformBlockOnBridgeThread(void (^block)(void));
+#ifdef __cplusplus
+extern "C" {
+#endif
+    void WXPerformBlockOnBridgeThread(void (^block)(void));
+#ifdef __cplusplus
+}
+#endif
 
 @interface WXBridgeManager : NSObject
 

Reply via email to