mirror of
https://github.com/status-im/react-native.git
synced 2025-02-04 21:53:30 +00:00
Use whether react instance is accepting calls to determine whether instance is active
Summary: There was previously a race condition where hasActiveCatalystInstance would return true, but calling a JS module call on it would result in a crash. Now, hasActivtyCatalystInstance will only return true once the instance is actually accepting calls. I'll follow this up with a more risky diff that gets rid of hasActiveCatalystInstance and just queues JS calls until runJSBundle is called. Reviewed By: javache Differential Revision: D4117374 fbshipit-source-id: 60941f68b0906a8213571305c564bfe3d053f51b
This commit is contained in:
parent
bdbadd1142
commit
6a45f05872
@ -40,6 +40,7 @@ public interface CatalystInstance extends MemoryPressureListener {
|
||||
*/
|
||||
void destroy();
|
||||
boolean isDestroyed();
|
||||
boolean isAcceptingCalls();
|
||||
|
||||
/**
|
||||
* Initialize all the native modules
|
||||
|
@ -143,7 +143,7 @@ public class ReactContext extends ContextWrapper {
|
||||
}
|
||||
|
||||
public boolean hasActiveCatalystInstance() {
|
||||
return mCatalystInstance != null && !mCatalystInstance.isDestroyed();
|
||||
return mCatalystInstance != null && mCatalystInstance.isAcceptingCalls();
|
||||
}
|
||||
|
||||
public LifecycleState getLifecycleState() {
|
||||
|
@ -55,9 +55,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
SoLoader.loadLibrary(REACT_NATIVE_LIB);
|
||||
}
|
||||
|
||||
private static final int BRIDGE_SETUP_TIMEOUT_MS = 30000;
|
||||
private static final int LOAD_JS_BUNDLE_TIMEOUT_MS = 30000;
|
||||
|
||||
private static final AtomicInteger sNextInstanceIdForTrace = new AtomicInteger(1);
|
||||
|
||||
// Access from any thread
|
||||
@ -247,6 +244,11 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
return mDestroyed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAcceptingCalls() {
|
||||
return !mDestroyed && mAcceptCalls;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize all the native modules
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user