Skip to content

Commit 80eed4a

Browse files
rshestfacebook-github-bot
authored andcommitted
Fix data race in usage of ShadowTreeRevisionConsistencyManager (facebook#51293)
Summary: Pull Request resolved: facebook#51293 # Changelog: [Internal] - Indirect consequence of facebook#50484, TSAN started to detect a data race in some configurations. It's possible to have the data race between the `ShadowTreeRevisionConsistencyManager` being set in `RuntimeScheduler` and it being already used in the executor thread (as these things are generally done from different threads). Differential Revision: D74651070 fbshipit-source-id: bda49371d541815119f119e6986de39c21f9b374
1 parent 1d5bbf1 commit 80eed4a

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Legacy.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,8 @@ class RuntimeScheduler_Legacy final : public RuntimeSchedulerBase {
182182
*/
183183
std::atomic_bool isPerformingWork_{false};
184184

185-
ShadowTreeRevisionConsistencyManager* shadowTreeRevisionConsistencyManager_{
186-
nullptr};
185+
std::atomic<ShadowTreeRevisionConsistencyManager*>
186+
shadowTreeRevisionConsistencyManager_{nullptr};
187187

188188
RuntimeSchedulerTaskErrorHandler onTaskError_;
189189
};

packages/react-native/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,8 @@ class RuntimeScheduler_Modern final : public RuntimeSchedulerBase {
225225
std::queue<RuntimeSchedulerRenderingUpdate> pendingRenderingUpdates_;
226226
std::unordered_set<SurfaceId> surfaceIdsWithPendingRenderingUpdates_;
227227

228-
ShadowTreeRevisionConsistencyManager* shadowTreeRevisionConsistencyManager_{
229-
nullptr};
228+
std::atomic<ShadowTreeRevisionConsistencyManager*>
229+
shadowTreeRevisionConsistencyManager_{nullptr};
230230

231231
PerformanceEntryReporter* performanceEntryReporter_{nullptr};
232232
RuntimeSchedulerEventTimingDelegate* eventTimingDelegate_{nullptr};

0 commit comments

Comments
 (0)