From 15e030b1c83f2898d17f30d05fc62377f2b83a20 Mon Sep 17 00:00:00 2001 From: Krzysztof Piaskowy Date: Thu, 17 Sep 2026 10:22:35 +0200 Subject: [PATCH] [Discord] Enable preventShadowTreeCommitExhaustion by default Reanimated requires this React Native flag to be enabled before its own DISABLE_COMMIT_PAUSING_MECHANISM flag can be turned on safely; without it, React commits can be starved and the app becomes unresponsive. See https://docs.swmansion.com/react-native-reanimated/docs/guides/feature-flags/#disable_commit_pausing_mechanism Co-authored-by: Cursor --- .../internal/featureflags/ReactNativeFeatureFlagsDefaults.kt | 4 ++-- .../react/featureflags/ReactNativeFeatureFlagsDefaults.h | 4 ++-- .../scripts/featureflags/ReactNativeFeatureFlags.config.js | 2 +- .../src/private/featureflags/ReactNativeFeatureFlags.js | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt index dc51cbe04a22..c1dafdb173f4 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<<462ac270e53d73922c29341d2bf557cc>> + * @generated SignedSource<> */ /** @@ -165,7 +165,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi override fun preparedTextCacheSize(): Double = 200.0 - override fun preventShadowTreeCommitExhaustion(): Boolean = false + override fun preventShadowTreeCommitExhaustion(): Boolean = true override fun redBoxV2Android(): Boolean = false diff --git a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h index bb7a36bc0125..43cb1102d7ec 100644 --- a/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +++ b/packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<5601de29c2a1e4bb3ff623d91f02c5f5>> */ /** @@ -312,7 +312,7 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider { } bool preventShadowTreeCommitExhaustion() override { - return false; + return true; } bool redBoxV2Android() override { diff --git a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js index 15646b06830a..284aa560dff0 100644 --- a/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js +++ b/packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js @@ -807,7 +807,7 @@ const definitions: FeatureFlagDefinitions = { ossReleaseStage: 'none', }, preventShadowTreeCommitExhaustion: { - defaultValue: false, + defaultValue: true, metadata: { dateAdded: '2025-07-23', description: diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js index a632cb0a4eb1..3d567e3b11a8 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @generated SignedSource<> + * @generated SignedSource<<555adeda70df7c9d17408eb7ad987aa2>> * @flow strict * @noformat */ @@ -499,7 +499,7 @@ export const preparedTextCacheSize: Getter = createNativeFlagGetter('pre /** * Enables a new mechanism in ShadowTree to prevent problems caused by multiple threads trying to commit concurrently. If a thread tries to commit a few times unsuccessfully, it will acquire a lock and try again. */ -export const preventShadowTreeCommitExhaustion: Getter = createNativeFlagGetter('preventShadowTreeCommitExhaustion', false); +export const preventShadowTreeCommitExhaustion: Getter = createNativeFlagGetter('preventShadowTreeCommitExhaustion', true); /** * Use the redesigned RedBox error overlay on Android, styled to match the LogBox visual language. */