mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Refactor FabricSoLoader to ensure sDidInit is accessed correctly
Summary: sDidInit can be accessed from different threads, this diff refactors the definition of this variable to be volatile and also to be assigned at the end of the staticInit() method. Changelog: Ensure proper initialization of FabricSoLoder Reviewed By: ejanzer Differential Revision: D18010919 fbshipit-source-id: 3ec7b19fdc15056b90fc01281b8c3888e93a7dd3
This commit is contained in:
committed by
Facebook Github Bot
parent
ff6b2ff325
commit
e21ed675ec
@@ -15,19 +15,18 @@ import com.facebook.soloader.SoLoader;
|
||||
import com.facebook.systrace.Systrace;
|
||||
|
||||
public class FabricSoLoader {
|
||||
private static boolean sDidInit = false;
|
||||
private static volatile boolean sDidInit = false;
|
||||
|
||||
public static void staticInit() {
|
||||
if (sDidInit) {
|
||||
return;
|
||||
}
|
||||
sDidInit = true;
|
||||
|
||||
Systrace.beginSection(
|
||||
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricSoLoader.staticInit::load:fabricjni");
|
||||
ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START);
|
||||
SoLoader.loadLibrary("fabricjni");
|
||||
ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END);
|
||||
Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE);
|
||||
sDidInit = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user