react-native/React/Base
Nick Lockwood 64edddadcc Fixed race condition in RCTModuleData.methodQueue
Summary:
public
The implementation of the `methodQueue` lazy initializer in `RCTModuleData` could result in the queue being set twice, because calling `methodQueue` for a module that hasn't been instantiated would call `RCTModuleData.instance` to create the module, which itself calls `methodQueue`.

It's not clear if this was causing a bug, but it may be related to an occasional bug where the `RCTViewManager.methodQueue` returns nil.

Reviewed By: majak

Differential Revision: D2783320

fb-gh-sync-id: 9194da0fd7392f63825da1f5c450363dd300b635
2016-01-04 06:24:28 -08:00
..
RCTAssert.h Reduced work done on main thread by RCTImageLoader 2015-11-17 07:21:29 -08:00
RCTAssert.m Add exception description to exception name 2015-11-23 16:19:29 -08:00
RCTBatchedBridge.m Fixed race condition in RCTModuleData.methodQueue 2016-01-04 06:24:28 -08:00
RCTBridge+Private.h Rename RCTContextExecutor to RCTJSCExecutor 2015-12-16 02:51:28 -08:00
RCTBridge.h Simplified session management 2015-12-15 10:51:33 -08:00
RCTBridge.m Hot Loading E2E basic flow 2015-12-28 16:44:59 -08:00
RCTBridgeDelegate.h Gate Hot Loading 2015-12-28 16:45:07 -08:00
RCTBridgeMethod.h Prepare the bridge for C++ 2015-09-18 15:04:28 -07:00
RCTBridgeModule.h Fixed race condition in RCTModuleData.methodQueue 2016-01-04 06:24:28 -08:00
RCTBundleURLProcessor.h Hot Loading E2E basic flow 2015-12-28 16:44:59 -08:00
RCTBundleURLProcessor.m Hot Loading E2E basic flow 2015-12-28 16:44:59 -08:00
RCTConvert.h Replaced RegExp method parser with recursive descent 2015-12-10 10:12:29 -08:00
RCTConvert.m Use font name for weight if no weight property available 2015-12-23 10:07:17 -08:00
RCTDefines.h Implement asm trampoline rather forwardInvocation 2015-10-20 04:14:09 -07:00
RCTEventDispatcher.h Implements `onKeyPress` 2015-11-02 09:15:31 -08:00
RCTEventDispatcher.m Refactored module access to allow for lazy loading 2015-11-25 04:49:45 -08:00
RCTFrameUpdate.h Pause JS DisplayLink if nothing to process. 2015-09-29 09:22:10 -07:00
RCTFrameUpdate.m Ran Convert > To Modern Objective C Syntax 2015-08-25 01:08:49 -08:00
RCTImageSource.h Added RCTImageSource 2015-12-08 03:32:30 -08:00
RCTImageSource.m iOS: Fix Image source={{ uri: null }} to crash 2015-12-21 10:04:31 -08:00
RCTInvalidating.h Remove isValid from RCTInvalidating 2015-08-14 01:57:18 -08:00
RCTJSMethodRegistrar.h Added non-class-scanning-based approach fror registering js methods 2015-04-08 05:45:20 -08:00
RCTJavaScriptExecutor.h Decouple Module System from Native Calls 2015-12-08 16:03:37 -08:00
RCTJavaScriptLoader.h [ReactNative] Add RCTBridgeDelegate 2015-07-28 15:57:02 -08:00
RCTJavaScriptLoader.m Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
RCTKeyCommands.h Updates from Thu 26 Mar 2015-03-26 06:32:01 -07:00
RCTKeyCommands.m Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
RCTKeyboardObserver.h Add keyboard-observing notifications 2015-08-25 03:49:13 -08:00
RCTKeyboardObserver.m Refactored module access to allow for lazy loading 2015-11-25 04:49:45 -08:00
RCTLog.h Provide log source to handler 2015-11-11 06:44:30 -08:00
RCTLog.m Replace private bridge categories with private header 2015-12-15 05:40:27 -08:00
RCTModuleData.h Precompute whether modules respond to batch notification methods 2015-12-03 04:20:27 -08:00
RCTModuleData.m Fixed race condition in RCTModuleData.methodQueue 2016-01-04 06:24:28 -08:00
RCTModuleMethod.h Replaced RegExp method parser with recursive descent 2015-12-10 10:12:29 -08:00
RCTModuleMethod.m Replace private bridge categories with private header 2015-12-15 05:40:27 -08:00
RCTNullability.h Replaced RegExp method parser with recursive descent 2015-12-10 10:12:29 -08:00
RCTParserUtils.h Replaced RegExp method parser with recursive descent 2015-12-10 10:12:29 -08:00
RCTParserUtils.m Replaced RegExp method parser with recursive descent 2015-12-10 10:12:29 -08:00
RCTPerformanceLogger.h Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
RCTPerformanceLogger.m Refactored module access to allow for lazy loading 2015-11-25 04:49:45 -08:00
RCTRootView.h Rename RCTContextExecutor to RCTJSCExecutor 2015-12-16 02:51:28 -08:00
RCTRootView.m Replace private bridge categories with private header 2015-12-15 05:40:27 -08:00
RCTRootViewDelegate.h Prevent RCTRootView delegate call 2015-11-13 08:28:28 -08:00
RCTRootViewInternal.h Introduction of RCTRootViewDelegate 2015-10-26 15:41:36 -07:00
RCTTouchHandler.h [ReactNative] Send batched calls from objc to js every frame + add bridge profiling 2015-04-17 04:01:02 -08:00
RCTTouchHandler.m Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
RCTURLRequestDelegate.h Refactored networking logic out into RCTDownloadTask 2015-07-23 04:00:31 -08:00
RCTURLRequestHandler.h [ReactNative] Refactor RCTDataManager to support pluggable data source modules (RCTURLRequestHandlers) 2015-06-09 12:27:06 -08:00
RCTUtils.h Add secure and login-password types to AlertIOS. 2015-11-30 19:51:41 -08:00
RCTUtils.m Add secure and login-password types to AlertIOS. 2015-11-30 19:51:41 -08:00