mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
e21ed675ec
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
33 lines
1.0 KiB
Java
33 lines
1.0 KiB
Java
/*
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
package com.facebook.react.fabric;
|
|
|
|
import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
|
|
|
|
import com.facebook.react.bridge.ReactMarker;
|
|
import com.facebook.react.bridge.ReactMarkerConstants;
|
|
import com.facebook.soloader.SoLoader;
|
|
import com.facebook.systrace.Systrace;
|
|
|
|
public class FabricSoLoader {
|
|
private static volatile boolean sDidInit = false;
|
|
|
|
public static void staticInit() {
|
|
if (sDidInit) {
|
|
return;
|
|
}
|
|
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;
|
|
}
|
|
}
|