mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
c0ec82e61e
Summary: ## Motivation With the bridge, every call into JS flushes the queue of NativeModule calls. Fabric bypasses this mechanism, because it uses a RuntimeExecutor that schedules work directly on the JavaScript thread. This diff makes Fabric's RuntimeExecutor also flush the queue of NativeModule calls. This likely won't fix anything in Fabric, because we don't execute any async NativeModule calls on Fb4a. However, this is necessary for the drainMicrotask work we're doing in D27729702 (https://github.com/facebook/react-native/commit/73108477589a18cecb303ef556fa3da02f8ca1b8), because (1) we need to drain the Hermes microtask queue on every call from C++ -> JavaScript (2) we drain the microtask queue [inside JSIExecutor::flush()](https://github.com/facebook/react-native/blob/de477a0df6da770e579892d4875a8995c430ebdf/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp#L427,L445). Changelog: [Android][Fixed] - Flush JSIExecutor in Fabric's RuntimeExecutor Reviewed By: JoshuaGross Differential Revision: D27975839 fbshipit-source-id: 27f031fb36593253da116a033e30998475eb1473