MCPcopy Create free account
hub / github.com/Snapchat/Valdi / callSyncWithJsThread

Method callSyncWithJsThread

valdi/src/valdi/android/NativeBridge.cpp:1226–1249  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1224 return;
1225 }
1226
1227 runtimeManager->getRuntimeManager().flushLoadOperations();
1228}
1229
1230void ValdiAndroid::NativeBridge::callSyncWithJsThread( // NOLINT
1231 fbjni::alias_ref<fbjni::JClass> /* clazz */, // NOLINT
1232 jlong runtimeHandle,
1233 jobject runnable) {
1234 auto* runtimeWrapper = getRuntimeWrapper(runtimeHandle);
1235
1236 if (runtimeWrapper == nullptr) {
1237 return;
1238 }
1239
1240 auto runnableRef = Valdi::makeShared<ValdiAndroid::JavaRunnable>(ValdiAndroid::JavaEnv(), runnable);
1241
1242 if (runtimeWrapper->getRuntime().getMainThreadManager().currentThreadIsMainThread()) {
1243 auto batch = runtimeWrapper->getRuntime().getMainThreadManager().scopedBatch();
1244 (*runnableRef)();
1245 } else {
1246 auto runtime = runtimeWrapper->getSharedRuntime();
1247 runtimeWrapper->getRuntime().getMainThreadManager().dispatch(
1248 nullptr, [runnableRef = std::move(runnableRef), runtime = std::move(runtime)]() {
1249 auto batch = runtime->getMainThreadManager().scopedBatch();
1250 (*runnableRef)();
1251 });
1252 }

Callers

nothing calls this directly

Calls 7

getRuntimeWrapperFunction · 0.85
scopedBatchMethod · 0.80
JavaEnvClass · 0.50
getMainThreadManagerMethod · 0.45
getRuntimeMethod · 0.45
dispatchMethod · 0.45

Tested by

no test coverage detected