From 0e52ab4e1a0f225c1506ed9afe30985b051034f3 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Tue, 2 Jul 2019 14:40:01 -0700 Subject: [PATCH] Add synchronization on Binding.schedulerDidFinishTransaction Summary: This diff ensures only one thread access the Binding.schedulerDidFinishTransaction method Reviewed By: shergin Differential Revision: D15995971 fbshipit-source-id: 31f03803e8829480dd30b9b9148fd09b218ebeab --- .../src/main/java/com/facebook/react/fabric/jni/Binding.cpp | 2 ++ .../src/main/java/com/facebook/react/fabric/jni/Binding.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp index 448facafb3b..9a6556372c0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp @@ -448,6 +448,8 @@ local_ref createCreateMountItem( void Binding::schedulerDidFinishTransaction( MountingCoordinator::Shared const &mountingCoordinator) { + std::lock_guard lock(commitMutex_); + SystraceSection s("FabricUIManagerBinding::schedulerDidFinishTransaction"); long finishTransactionStartTime = getTime(); diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h index afa7849c0bb..7987afc92b3 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h @@ -32,6 +32,8 @@ class Binding : public jni::HybridClass, public SchedulerDelegate { std::shared_ptr scheduler_; std::mutex schedulerMutex_; + std::mutex commitMutex_; + float pointScaleFactor_ = 1; private: